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

下面简单说一个hidl的例子

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

路径:vendor/mediatek/proprietary/hardware/interfaces/nvram/1.0/
包含三个文件


Android:Android O hidl简述_第1张图片 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


Android:Android O hidl简述_第2张图片 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(); 

更多相关文章

  1. Android显示PDF文件之iText
  2. Android多媒体学习二:检索Android的图片库,并显示
  3. Android中解析doc、docx、xls、xlsx格式文件
  4. Android中除了利用VideoView、Mediaplayer播放视频文件外,还可以
  5. Android 布局文件属性讲解
  6. Android工作学习笔记之图片自适应imageview属性android:scaleTyp
  7. (Android)JavaSocket编程,文件上传到服务器,客户端Android,服务器端J2
  8. android图片压缩总结

随机推荐

  1. android 设备唯一码的获取,Cpu号,Mac地址
  2. Android(安卓)NDk 开发简易教程
  3. Android第十三期 - 百度云推送(百度后台版
  4. Android(安卓)Volley 库通过网络获取 JSO
  5. Android资源文件中特殊字符未转义引起的
  6. android中UI主线程与子线程深入分析
  7. Android系统更新历史(系统和名称)
  8. Android上跑OpenCV
  9. Android(安卓)RecyclerView之添加Item分
  10. 安卓自动生成代码插件-Android(安卓)code