首页 > 学院 > 开发设计 > 正文

HAL 详解之JNI 调用

2019-11-09 14:49:04
字体:
来源:转载
供稿:网友

文章出处:http://blog.csdn.net/shift_wwx/article/details/54971580

请转载的朋友标明出处~~

上一文 hardware 详解 中详细讲解了hardware 的部分以及HAL 中需要实现的部分,剩下来就是上层应用调用 HAL ,java 调用 HAL 必定经过JNI,对于详细JNI 的操作这里不做过多的解释,详细看JNI 再分析

下面截取hdmi cec 中的code 讲解

1、查找module

    hw_module_t* module;    err = hw_get_module(HDMI_CEC_HARDWARE_MODULE_ID,            const_cast<const hw_module_t **>(&module));通过hw_get_module 获取module,这里传的是临时变量的地址

如果查找到module,返回值应该是0

2、通过module 的open 初始化device

    hw_device_t* device;    err = module->methods->open(module, HDMI_CEC_HARDWARE_INTERFACE, &device);    if (err != 0) {        ALOGE("Error opening hardware module: %d", err);        return 0;    }

这里的open 就是HAL 中自身实现的,用于控制open 哪个设备,通过  hardware 详解  中知道一个module 可能对应不同的device,第二个参数就是device name

3、device 初始化完整,可以通过device,调用结构中对应的函数指针了


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表