WMS はクライアントとして機能し、そのコード パスは次のとおりです。
android/frameworks/base/services/core/java/com/android/server/wm
ネイティブ レイヤー CustomizeManagerService はサーバー側として使用され、そのコード パスは次のとおりです。
android/frameworks/native/services/customizemanagerservice
目次
1. まず、aidl ファイルを定義します。このファイルは次のディレクトリに追加できます。
2. ネイティブ層サービスについては、通常のネイティブ サービスの作成プロセスを参照してください。
1. まず、aidl ファイルを定義します。このファイルは次のディレクトリに追加できます。
android/frameworks/base/core/java/android/ipd/ICustomizeManagerService.aidl
パッケージ android.customize;
/**
* インターフェースをカスタマイズします。
* {@hide}
*/
インターフェース ICustomizeManagerService { int getcustomize(); }
Aidl から Java ファイルを生成し、その内容を確認したい場合は、次のコマンドを使用できます。このコマンドは Java ディレクトリに生成されます。-o は生成パスを指定します。
$ aidl -o ./java --lang=java フレームワーク/base/core/java/android/ipd/ICustomizeManagerService.aidl
android.ipd.ICustomizeManagerService をインポートします。
プライベート ICustomizeManagerService ipdService;
IBinder バインダー = ServiceManager.getService("customizemanagerservice");
if (バインダー != null) {
CustomizeService = ICustomizeManagerService.Stub.asInterface(binder);
}
int getcustomize =customizeService.getcustomize();
2. ネイティブ層サービスについては、通常のネイティブ サービスの作成プロセスを参照してください。
参照できる
https://blog.csdn.net/weixin_41028555/article/details/130322366?spm=1001.2014.3001.5502
3. ただし、次の箇所を変更する必要があります。
#define NATIVESERVICE_NAME " android.customize.ICustomizeManagerService "
IMPLEMENT_META_INTERFACE(CustomizeManagerService, NATIVESERVICE_NAME);
ここでの NATIVESERVICE_NAME は、ICustomizeManagerService.aidl のパッケージ名と一致している必要があります。