1

我正在使用“嵌入式Android”一书。

我正在使用 AOSP(4.0.3_r1) 创建一个新的系统服务。
我希望我的系统服务在frameworks/base/core/java/android/content/app/ContextImpl.java中注册,以便我可以通过getSystemService()方法使用它。

问题是,我在content下找不到app文件夹:androidroot/frameworks/base/core/java/android/ content/app /ContextImpl.java 但是,我发现它在:androidroot/frameworks/base/core/java /android/app/ContextImpl.java 这两个文件一样吗?还是只是缺少(内容/应用程序文件夹)? 知道该怎么做吗?





4

2 回答 2

0

卡里姆写他的书主要是针对 Android 2.3.4 版本。从这个时候开始可以改变一些东西。这是一个已经改变的例子。

这两个文件是一样的吗?还是只是缺少(内容/应用程序文件夹)?

这些是相同的文件。

知道该怎么做吗?

正如我所说,实施已经改变。我查看了代码,在这里您可以更改哪些内容以使您的代码正常工作(我只能假设,因为我实际上并没有构建我的代码)。在staticContextImpl 类的块中,您需要添加以下代码:

registerService(ACCOUNT_SERVICE, new ServiceFetcher() {
    public Object createService(ContextImpl ctx) {
        IBinder b = ServiceManager.getService(OPERSYS_SERVICE);
        IOpersysService service = IOpersysService.Stub.asInterface(b);
        return new OpersysManager(service);
    }});
于 2013-06-19T06:53:56.093 回答
0

您需要使用SystemServerwhich 保存所有系统服务的名称。您应该查看此链接: http: //processors.wiki.ti.com/index.php/Android-Adding_SystemService

于 2013-06-18T18:54:59.733 回答