Android audio系统的代码分布情况如下所示:

1AudioJava部分

代码路径:frameworks/base/media/java/android/media

Audio相关的Java包是android.media,主要包含AudioManagerAudio系统的几个类。

2AudioJNI部分

代码路径:frameworks/base/core/jni

生成库libandroid_runtime.soAudioJNI是其中的一个部分。

3Audio的框架部分

头文件路径:frameworks/base/include/media/

源代码路径:frameworks/base/media/libmedia/

Audio本地框架是media库的一部分,本部分内容被编译成库libmedia.so,提供Audio部分的接口(包括基于Binder的 IPC机制)。

4Audio Flinger

代码路径:frameworks/base/libs/audioflinger

这部分内容被编译成库libaudioflinger.so,它是Audio系统的本地服务部分。

5Audio的硬件抽象层接口

头文件路径:hardware/libhardware_legacy/include/hardware/

Audio硬件抽象层的实现在各个系统中可能是不同的,需要使用代码去继承相应的类并实现它们,作为Android系统本地框架层和驱动程序接口。