读书频道 > 网站 > 网页设计 > 深入理解Android:卷III
3.1概述
15-08-21    下载编辑
收藏    我要投稿   

本文所属图书 > 深入理解Android:卷III

本书在逻辑上分为4个部分Part 01(第1-2章):这是本书的基础部分,首先介绍了Android源码环境的搭建、编译和调试;然后讲解了Android进程间通信与任务调度的工具Binder与MessageQueue 这两项基础工作是深入研究立即去当当网订购
通过对卷I第7章的学习,相信大家已经对AudioTrack、AudioRecord、音频设备路由等知识有了深入了解。这一章将详细介绍音频系统在Java层的实现,围绕AudioService这个系统服务深入探讨在Android SDK 中看到的音频相关的机制的实现。
 
在分析Android音频系统时,习惯将其实现分为两个部分:数据流和策略。数据流描述了音频数据从数据源流向目的地的过程。而策略则是管理及控制数据流的路径与呈现的过程。在卷I所探讨的Native 层音频系统中,AudioTrack、AudioRecord和AudioFlinger可以划归到数据流的范畴去讨论,而AudioPolicy相关的内容则属于策略范畴。
 
音频系统在Java层中基本上是不参与数据流的。虽然有AudioTrack和AudioRecord这两个类,但是它们只是Native层同名类的Java封装。抛开这两个类,AudioService这个系统服务包含或使用了几乎所有与音频相关的内容,所以说AudioService是一个音频系统的大本营,它的功能非常多,而且它们之间的耦合性也不大。本章将从三个方面来探讨AudioService。
 
音量管理。
 
从按下音量键到弹出音量调节提示框的过程,以及静音功能的工作原理。
 
音频IO设备的管理。
 
我们将详细探讨从插入耳机到声音经由耳机发出这个过程中,AudioService的工作内容。
AudioFocus机制。
 
AudioService在Android 2.3及以后版本中提供了AudioFocus机制,用以结束多个音频应用混乱的交互现状。音频应用在播放音频的过程中需要合理地申请与释放AudioFocus,并且根据AudioFocus所有权的变化来调整自己的播放行为。我们将从音频应用开始播放音频,到播放完成的过程中探讨AudioFocus的作用及原理。
 
AudioService的类图如图3-1所示。
 
 
由图3-1可知:
 
AudioService继承自IAudioService.Stub。IAudioService.Stub类是通过IAudioService.aidl自动生成的。AudioService位于Bn端。
 
AudioManager拥有AudioService的Bp端,是AudioService在客户端的一个代理。几乎所有客户端对AudioManager进行的请求,最终都会交由AudioService实现。
 
AudioService的功能实现依赖AudioSystem类。AudioSystem无法实例化,它是Java层到native层的代理。AudioService将通过它与AudioPolicyService及AudioFlinger进行交互。
 
下面开始我们的AudioService之旅吧。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站