1

「Embedded Android」という本を使用しています。

私は AOSP(4.0.3_r1) を使用して新しいシステム サービスを作成しています。
システム サービスをFrameworks/base/core/java/android/content/app/ContextImpl.javaに登録して、メソッドで使用できるようにしgetSystemService()ます。

問題は、コンテンツの下にappフォルダーが見つからないことです: androidroot/frameworks/base/core/java/android/ content/app /ContextImpl.java しかし、私はそれを見つけました: androidroot/frameworks/base/core/java /android/app/ContextImpl.java これらの 2 つのファイルは同じですか? またはそれが欠けているだけですか(コンテンツ/アプリフォルダー)? 何をすべきかについて何か考えはありますか?





4

2 に答える 2

0

SystemServerすべてのシステム サービスの名前を保持する whichを使用する必要があります。このリンクを確認してください: http://processors.wiki.ti.com/index.php/Android-Adding_SystemService

于 2013-06-18T18:54:59.733 に答える
0

Karim は主に Android 2.3.4 バージョンに関する本を書きました。これから何かが変わるかもしれません。変更した例です。

これら2つのファイルは同じですか?またはそれが欠落しているだけですか(コンテンツ/アプリフォルダー)?

これらは同じファイルです。

何をすべきかについて何か考えはありますか?

私が言ったように、実装は変更されました。コードを調べたところ、コードを機能させるために何を変更できるかを調べました (実際にコードをビルドしていないため、推測できます)。ContextImpl クラスのstaticブロックに、次のコードを追加する必要があります。

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 に答える