此文档是 hidl对应的接口写好后编译出对应的package 不封装jni接口直接在 framework中的java文件调用
hidl层接口的步骤说明:
1 .HIDL层 数据说明
hidl package包名 : android.hardware.gpio@1.0
提供的接口文件: IGpio.hal
interface IGpio {
sendConfigCmd( SendCmd configs);
};
types.hal文件 定义了参数:
strcut SendCmd {
string cmd;
};
编译好后out目录下也生成了对应的文件( out/target /common/gen/JAVA_LIBRARIES/android.hardware.gpio-V1.0-***)
2.在java文件的修改:
2.1: import package
import android.hardware.gpio.V1_0.IGpio;
import android.hardware.gpio.V1_0.SendCmd; //要在java文件中定义该数据类型的数据所以要import进来
2.2 定义service 变量
IGpio hidlGpioService;
2.3: 在对应的构造函数中对service进行初始化:获取service
try{
hidlGpioService = IGpio.getService();
} catch (Exception e) {
e.printStackTrace();
}
2.4 定义参数,调用函数
SendCmd configs = new SendCmd();
SendCmd.cmd ="asdfawefwef";
try{
hidlGpioService.sendConfigCmd(configs);
} catch (Exception e) {
e.printStackTrace();
}
2.5. 在编译该java文件的Android.mk 中链接 hidl 库
LOCAL_STATIC_JAVA_LIBRARIES := \
android.hardware.gpio-V1.0-java-static \
android.hardware.gpio-V1.0-java
//这个根据自己编写的hidl的目录里面Android.mk里面所生成的库文件 填写
最后编译即可