前言
在上一篇中已经完成了服务端的集成,手机软件此时已经可以自动启动服务端,且运行无异常。
接下来我们就要实现我们的终极目标了:system_server(JAVA端)与服务端相互通信;
预处理
首先先解释下一个“玄学”的情况:在前两章的操作完成后,我们不需要添加任何JAVA类,即可直接使用;
究其原因,是因为在我们之前使用hidl-gen的时候,生成的Android.bp中包含这个字段:
hidl_interface {
...
gen_java: true,
}
字段定义与实现可在这里查到:/system/tools/hidl/build/hidl_interface.go,在此先不讲解,后续有时间再补上:
JAVA代码
添加Android.bp依赖:
static_libs: [
"vendor.zsui.hardware.example-V1.0-java",
]
核心代码:
import vendor.zsui.hardware.example.V1_0.IExample;
...
try {
IExample example = IExample.getService();
Slog.d("ZSUI", "example HELLO WORLD result = " + example.helloWorld("ZSUI"));
} catch (