AIDL服务和Android开源

时间:2016-05-10 18:34:34

标签: java android android-source aidl

我创建了一个名为IHelloService的AIDL服务,我试图在libcore模块下从IOBridge调用它。

目前我的代码看起来像这样

// import
import android.os.IHelloService;
import android.os.ServiceManager;

....

IHelloService helloService = IHelloService.Stub.asInterface(ServiceManager.getService("hello"));
int val = helloService.getVal();

执行标准构建时遇到错误。 错误包括package android.os does not existcannot find symbol ServiceManager以及IHelloService

我已经在HelloService aidl文件中声明了package android.os,所以我认为这不是问题。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

桑,

您的问题实际上是我一直在努力解决的问题。您需要做的是构建一个与该特定服务一起使用的新SDK,以便Android Studio(我假设您正在使用它)可以将其识别为在您的ROM版本中可用。

以下是您应该做的事情:(在https://android.googlesource.com/platform/sdk/+/master/docs/howto_build_SDK.txt找到)

  1. 转到Android构建区域并运行。建立/ envsetup.sh
  2. 在构建区域中运行命令“make update-api”。这将使用您对api进行的更改或添加来更新文件。
  3. 运行“lunch sdk-eng”以设置sdk的构建。
  4. 要制作SDK,请运行“make sdk”。这可能需要一些时间(20米 - 2小时),但会以“Package SDK:out / host / darwin-x86 / sdk / android-sdk_eng..zip”这一行结束。
  5. 现在已经制作了SDK,您需要将Android Studio指向新的SDK。要做到这一点:

    1. 点击您的应用,然后选择“打开模块设置”。
    2. 从左侧菜单中选择“SDK”。
    3. 选择新的SDK路径。
    4. 可能有其他方法可以做到这一点,但这是我目前正在处理的过程。