AudioService 是一个 Java 服务,主要用于控制音频输入输出的过程,如调节音量大小,设置音量模式,设置蓝牙音频的模式,我现在具体分析和AudioService 相关的软件层。
它主要是为向应用层提供控制音频输入输出的过程的接口。
1.Application Framework
AudioManager.java
AudioManager 持有IAudioService 对象,IAudioService ,调用 AudioService.java 中的方法,按照Binder 服务的模式进行调用。
AudioSystem.java
AudioService 的具体功能是通过调用 AudioSystem的方法来实现的。但是 AudioSystem 也只是向Application 提供 Audio 本地代码的功能的接口。
AudioSystem 通过 JNI android_media_AudioSystem.cpp 调用 本地代码
android_media_AudioSystem.cpp
这个JNI 调用 AudioSystem.cpp 中的方法
AudioService.java
AudioService,是一个 Java 服务,通过Binder 方式,用IAudioService向AudioManager 或者 Application 提供调用接口,可以进行本进程调用,也可以进行跨进程的调用。
2.Libaries And Android Runtime
AudioSystem.cpp
通过 IAudioFlinger 和 IAudioPolicyService 调用 AudioFlinger 和 AudioPolicyService
它主要是为向应用层提供控制音频输入输出的过程的接口。
1.Application Framework
AudioManager.java
AudioManager 持有IAudioService 对象,IAudioService ,调用 AudioService.java 中的方法,按照Binder 服务的模式进行调用。
AudioSystem.java
AudioService 的具体功能是通过调用 AudioSystem的方法来实现的。但是 AudioSystem 也只是向Application 提供 Audio 本地代码的功能的接口。
AudioSystem 通过 JNI android_media_AudioSystem.cpp 调用 本地代码
android_media_AudioSystem.cpp
这个JNI 调用 AudioSystem.cpp 中的方法
AudioService.java
AudioService,是一个 Java 服务,通过Binder 方式,用IAudioService向AudioManager 或者 Application 提供调用接口,可以进行本进程调用,也可以进行跨进程的调用。
2.Libaries And Android Runtime
AudioSystem.cpp
通过 IAudioFlinger 和 IAudioPolicyService 调用 AudioFlinger 和 AudioPolicyService