Audio Policy 分析
2016-05-08 19:16
274 查看
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,关键原因是我没找到切入点,只知道代码从头看到尾!
上回我们说了AudioFlinger(AF),总感觉代码里边有好多东西没说清楚,心里发毛。就看了看AF的流程,我们敢说自己深入了解了Android系统吗?AudioPolicyService(APS)是个什么东西?为什么要有它的存在?下层的Audio HAL层又是怎么结合到Android中来的?更有甚者,问个实在问题:插入耳机后,声音又怎么从最开始的外放变成从耳机输出了?调节音量的时候到底是调节Music的还是调节来电音量呢?这些东西,我们在AF的流程中统统都没讲到。但是这些他们又是至关重要的。从我个人理解来看,策略(Policy)比流程更复杂和难懂。 当然,遵循我们的传统分析习惯,得有一个切入点,否则我们都不知道从何入手了。 这里的切入点将是: l AF和APS系统第一次起来后,到底干了什么。 l 检测到耳机插入事件后,AF和APS的处理。 大家跟着我一步步来看,很快就发现,啊哈,APS也不是那么难嘛。 另外,这次代码分析的格式将参考《Linux内核情景分析》的样子,函数调用的解析将采用深度优先的办法,即先解释所调用的函数,然后再出来继续讲。 我曾经数度放弃分析APS,关键原因是我没找到切入点,只知道代码从头看到尾!
相关文章推荐
- DNS域名解析过程
- 水波纹(water ripple)
- static和const的作用
- 自定义控件入门
- 下一代大数据系统和4S标准
- 大数据流式处理的利与弊
- InetAddress类的使用
- 全局变量与局部变量
- spring -- aop基于xml的简单实现
- ACM-2012 素数判定
- 现在开始学程序还不晚吧
- 浅谈Python Web 安全开发
- 分布式实战--zookeeper
- 【SSH】Dispatcher initialization failed && Exception startingfilter struts2
- Laxcus大数据管理系统2.0(14)- 后记
- 那些折腾了自己很久,一下子却又能解决的问题
- 如何创建属于自己的一个论坛
- ORB-SLAM2编译遇到的一些问题
- 网络编程模型及网络编程三要素
- 引用变量的强制转换类型