Android反射hidl服务,Android:Android O hidl简述

Android 8.0引入hidl,原因是为了将hal从system.img移除出去,方便android版本升级。

下面简单说一个hidl的例子

一.编写hal文件,可以自动生成so库和java库,以mtk的nvram为例子

路径:vendor/mediatek/proprietary/hardware/interfaces/nvram/1.0/

包含三个文件

07459e457cf4

image.png

hal文件定义了system与vendor hal交互的接口,android.bp和android.mk用于生成so库和java库

interface INvram {

readFileByName(string filename, uint32_t size)

generates (string data);

writeFileByNamevec(string filename, uint32_t size, vec data)

generates (int8_t retval);

};

二.编写服务端

vendor/mediatek/proprietary/external/libnvram/nvram_agent_hidl

07459e457cf4

image.png

nvram_agent_binder.rc 用于将服务发布出去。

nvram_agent.cpp 中启动服务

main(void)

{

int ret = 0;

using vendor::mediatek::hardware::nvram::V1_0::INvram;

using android::hardware::defaultPassthroughServiceImplementation;

try {

NVRAM_LOG("NvRAMAgent Service is now ready");

ret =defaultPassthroughServiceImplementation();

} catch (const std::__1::system_error & e) {

NVRAM_LOG("NvRAMAgent system_error");

}

return ret;

}

三.编写java客户端

import包,获取服务。

import vendor.mediatek.hardware.nvram.V1_0.INvram;

337 INvram agent = INvram.getService();

379 INvram agent = INvram.getService();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值