main_audioserver.cpp
源码 ./frameworks/av/media/audioserver/main_audioserver.cpp 对应进程 audioserver, 对应的启动rc文件在 /etc/init/audioserver.rc
# cat audioserver.rc
service audioserver /system/bin/audioserver
class main
user audioserver
group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct
......

主要就是创建3个关键Service: AudioFlinger、 AudioPolicyService、SoundTriggerHwService(将在soundtrigger章节分解)。
这里调用的是instantiate()函数,那是因为它们都继承了BinderService这个类:./frameworks/native/libs/binder/include/binder/BinderService.h

本文介绍了Android系统中audioserver的启动流程,重点关注AudioFlinger和AudioPolicyService的创建。AudioFlinger负责与音频设备的HAL层交互,而AudioPolicyService则跟踪系统状态并管理音频策略。文章提到了Hybrid层的作用以及AudioPolicyManager如何加载配置和创建流。下篇将探讨HIDL在音频模块中的应用。

3624

被折叠的 条评论
为什么被折叠?



