java服务调用native服务

WMS作为Client端,其代码路径如下:

android/frameworks/base/services/core/java/com/android/server/wm

native层CustomizeManagerService作为Server端,其代码路径如下:

android/frameworks/native/services/customizemanagerservice

目录

1.首先定义一个aidl文件,可在如下目录添加

2. 至于Native层service则按照参考常规的native service创建流程就好了。

可参考

3. 但是要修改如下地方:


1.首先定义一个aidl文件,可在如下目录添加

android/frameworks/base/core/java/android/ipd/ICustomizeManagerService.aidl

package android.customize;
/**
 * customize interface.
 * {@hide}
 */
interface ICustomizeManagerService {
    int getcustomize();
}

若想将aidl生成java文件想看看里面的内容时,可用如下命令,会生成在java目录下,-o是指定生成路径。

$ aidl -o ./java --lang=java frameworks/base/core/java/android/ipd/ICustomizeManagerService.aidl

import android.ipd.ICustomizeManagerService;

private ICustomizeManagerService ipdService;

IBinder binder = ServiceManager.getService("customizemanagerservice");

if (binder != null) {

    customizeService = ICustomizeManagerService.Stub.asInterface(binder);

}

int getcustomize = customizeService.getcustomize();

2. 至于Native层service则按照参考常规的native service创建流程就好了。

可参考

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中的package name保持一致。

猜你喜欢

转载自blog.csdn.net/weixin_41028555/article/details/131211398