设计步骤:app通过service调jni,jni调hal
- hal层代码编写(jni会调用hal中的接口,hal中的代码编译后会生成一个so库)
- jni层代码编写(java不能访问c/cpp,所以就得使用这个,jni中的c/cpp文件编译后也会生成一个so库)
- service层代码编写(framework层,此层是给应用层提供服务的,先定义一个aidl文件,此文件定义好接口,然后定义一个service的java文件,继承aidl文件中的stub,实现aidl文件中的接口,最后将service添加到SystemServer.java中)
- app层代码编写:获取服务对象,然后就可以调用服务中的接口了;
HAL代码结构:三个结构体,两个常量,一个函数,简称321架构。
三个结构体
hw_module_t,hw_module_methods_t,hw_devic