Android:Android O hidl简述
16lz
2021-01-23
Android 8.0引入hidl,原因是为了将hal从system.img移除出去,方便android版本升级。
下面简单说一个hidl的例子
一.编写hal文件,可以自动生成so库和java库,以mtk的nvram为例子
路径:vendor/mediatek/proprietary/hardware/interfaces/nvram/1.0/
包含三个文件
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
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();
更多相关文章
- Android显示PDF文件之iText
- Android多媒体学习二:检索Android的图片库,并显示
- Android中解析doc、docx、xls、xlsx格式文件
- Android中除了利用VideoView、Mediaplayer播放视频文件外,还可以
- Android 布局文件属性讲解
- Android工作学习笔记之图片自适应imageview属性android:scaleTyp
- (Android)JavaSocket编程,文件上传到服务器,客户端Android,服务器端J2
- android图片压缩总结