http://blog.csdn.net/hgl868/article/details/6888001
上回我们说了AudioFlinger(AF),总感觉代码里边有好多东西没说清楚,心里发毛。就看了看AF的流程,我们敢说自己深入了解了Android系统吗?AudioPolicyService(APS)是个什么东西?为什么要有它的存在?下层的Audio HAL层又是怎么结合到Android中来的?更有甚者,问个实在问题:插入耳机后,声音又怎么从最开始的外放变成从耳机输出了?调节音量的时候到底是调节Music的还是调节来电音量呢?这些东西,我们在AF的流程中统统都没讲到。但是这些他们又是至关重要的。从我个人理解来看,策略(Policy)比流程更复杂和难懂。
当然,遵循我们的传统分析习惯,得有一个切入点,否则我们都不知道从何入手了。
这里的切入点将是:
l AF和APS系统第一次起来后,到底干了什么。
l 检测到耳机插入事件后,AF和APS的处理。
大家跟着我一步步来看,很快就发现,啊哈,APS也不是那么难嘛。
另外,这次代码分析的格式将参考《Linux内核情景分析》的样子,函数调用的解析将采用深度优先的办法,即先解释所调用的函数,然后再出来继续讲。
我曾经数度放弃分析APS,关键原因是我没找到切入点,只知道代码从头看到尾!
时间: 2024-09-30 09:29:39