AudioService 是系统服务,由 SystemServer 启动。提供应用所需的除了播放的相关的 audio 业务,与之对应的 Client 端是应用进程中的AudioManager。两者之间通过binder进行通信。
一、服务启动流程
1、SystemServer
源码路径:/frameworks/base/services/java/com/android/server/SystemServer.java
boolean isArc = context.getPackageManager().hasSystemFeature("org.chromium.arc");
private void startOtherServices(@NonNull TimingsTraceAndSlog t) {
t.traceBegin("StartAudioService");
if (!isArc) {
mSystemServiceManager.startService(AudioService.Lifecycle.class);
} else {
String className = context.getResources().getString(R.string.config_deviceSpecificAudioService);
try {
mSystemServiceManager.startService(className + "$Lifecycle");
} catch (Throwable e) {
reportWtf("starting " + className, e);
}
}
t.traceEnd();
}
同样是在 star