两个与hal有关的结构体 hw_module_t ,hw_device_t
一、jni和hal之间的关系
Tip:几种app,jni,hal,framework之间的关系框架
这篇文章用的框架是第二种框架的编写,他们的关系如下;
可以看出jni主要通过pModule和pdevice来获取hal中的变量来操作hal层
二、jni操作hal
hal层:1、jnihal层的module和device对象
hal2、jnihal层
jni操作hal完整代码参考[android底层]jni中获取自定义的类函数编写 来对比
三,哈尔的编写
编写哈尔注意点(注释部分)
1,哈尔的. h文件的编写,自己的硬件自定义的模块和设备的编写;以领导为例子
2,哈尔的。c文件的编写的步骤
一个结构体hw_module_t的结构体
第二步:
第三步:
完整代码
#ifndef __HAL_LED_H__ # define __HAL_LED_H__ # include & lt;硬件/hardware.h>, , # define LED_MODULE_ID “myled_hal”,//目标文件名称:,libhal_jni_test.so led_hal_modules {struct ,,,struct hw_module_t 普遍;//必须这个名称(约定), },, led_hal_device {struct ,,,struct hw_device_t 普遍;//必须这个名称(约定), ,,,//下面是设备相关自定义函数, ,,,int (*打开)();, ,,,int (* ledoff) ();, ,,,int (*一同出席)(),, },, , # endif(安卓底层]哈尔硬件抽象层编写