Android HIDL理解(基于Android O)_kuang_tian_you的博客-CSDN博客_android hidl
我们这个实例会用到以下几个模块:
- android.hardware.naruto@1.0.so: Naruto模块调用端的代码,binder client端 (binder client端的共享库)
- android.hardware.naruto@1.0-impl.so: Naruto模块实现端的代码编译生成,binder server端 (binder server端的共享库,其实就是具体的实现)
- naruto_hal_service: 通过直通式注册binder service,暴露接口给client调用
- android.hardware.naruto@1.0-service.rc: Android native 进程入口
Android HIDL学习(2) ---- HelloWorld - 简书
Android HIDL HAL 接口定义语言详解_岁月斑驳7的博客-CSDN博客_hidl接口
android.hardware.power@1.0-service.rc会被拷贝到vendor.img里面的vendor/etc/init目录。rc文件的内容如下:
对于init的解析机制,本文不做描述,在开机过程的某一个阶段,系统会启动class是hal的服务,会执行/vendor/bin/hw/android.hardware.power@1.0-service,从而调用hardware/interfaces/power/1.0/default/service.cpp的main方法。
IPower::registerAsService 接下来,调用status_t status = service->registerAsService(name),首先会创建BnHwPower对象,然后将当前的service 添加进hwservicemanager里面。初始化
Android 系统开发(2)--Android Treble详细分析 - 简书
//impl和service.cpp合为一个。
//Android HIDL 之 hal 进程启动及服务注册过程