在上一篇Android Framework源码解读 - Audio - audioserver启动流程(2) - HIDL 中已经基本上理清了audioserver启动以及它和另外两个关键进程 android.hardware.audio@2.0-service, hwservicemanager的交互关系。
其中audioserver启动时创建了三个关键binder service,前两篇已经涉及到了AudioFlinger service和AudioPolicyService, 而SoundTriggerHwService还是留在后面的专题去讲。
本篇再回顾一下Binder IPC,在audioserver和audio@2.0-service之间的binder对象主要包括:
binder client类(audioserver) | interface(接口类) | binder server类(audio@2.0-service) |
BpHwDevicesFactory | IDevicesFactory | BnHwDevicesFactory |
BpHwEffectsFactory | IEffectsFactory | BnHwEffectsFactory |
BpHwDevice | IDevice | BnHwDevice |
BpHwStreamIn | IStreamIn | BnHwStreamIn |
BpHwStreamOut | IStreamOut | BnHwStreamOut |
BpHwSoundTriggerHw | ISoundTriggerHw | BnHwSoundTriggerHw |
当然还有其它IStream、IPrimaryDevice、IEffect等等,不再一一列举。