http://blog.csdn.net/adits/article/details/8242146
开发环境简介
1. 主机系统: Unbuntu10.102. android系统版本: 4.0.3(Linux kernel 3.0.8)
综述
android的音频系统非常庞大复杂:涉及到java应用程序,java框架层,JNI,本地服务(AudioFlinger和AudioPolicyService),硬件抽象层HAL,ALSA-LIB和ALSA-DRIVER。本文将先分析音频系统的启动与模块加载流程,并具体分析一个JAVA API的调用流程;最后在此基础上自然地为android系统添加USB AUDIO设备的放音和录音功能。
全文可分为如下几大部分:
1. 本地服务的启动流程分析。
1.1 AudioFlinger启动流程及其所涉及的HAL层模块启动流程分析。
1.2 AudioPolicyService启动流程及其所涉及的HAL层模块启动流程分析。
2. JAVA API setDeviceConnectionState()调用流程详解,同时为android系统添加USB AUDIO设备的放音和录音功能。
3. ALSA-LIB浅述以及asound.conf配置文件的书写。
4. 重新获取USB AUDIO设备的硬件参数。