HIDL连接Framework和HAL
HIDL 全称为HAL interface definition language(发音为“hide-l”)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL),Android O开始引入了HIDL这个概念,HIDL和应用层AIDL差不多,AIDL常用于连接App和Framework,HIDL则是用来连接Framework和HAL,AIDL使用Binder通信,HIDL则使用HwBinder通信,他们都是通过Binder驱动完成通信,只不过两个Binder域不一样
HIDL接口和包
https://source.android.com/docs/core/architecture/hidl/interfaces
HAL层编译示例
$ source build//envsetup.sh
选择平台 $ lunch
$ mmm hardware/libhardware/modules/XXX/
VTS
gtest
- 典型的 VTS gtest 遍历给定接口的每个实例,并针对它运行所有测试用例。
参阅 VtsHalHealthStorageV1_0TargetTest
2。 Googletest 可用性:Linux,Windows,Mac
参阅 https://github.com/google/googletest/blob/main/docs/primer.md#simple-tests
这些文件就是ALSA音频驱动框架对应的设备文件,ls /dev/snd 查看音频设备:
- controlC0:用于声卡控制, C0 表示声卡 0
- pcmC0D0c 和 pcmC0D1c: 用于录音的 pcm 设备,其中的“COD0”和“C0D1”分别表示声卡 0 中的设备 0 和设备 1,最后面的“c”是 capture 的缩写,表示录音
- pcmC0D0p 和 pcmC0D1p:用于播放的 pcm 设备,其中的“COD0”和“C0D1”分别表示声卡 0 中的设备 0 和设备 1,最后面的“p”是 playback 的缩写,表示放音
- timer: 定时器