Audioservice、Audiomanager和Audiosystem

JAVA:

Audioservice、Audiomanager和Audiosystem 

AudioService:

继承自IAudioService.Stub,IAudioService.Stub类很明显是通过IAudioService.aidl自动生成的。AudioService位于Bn端。

AudioManager:

AudioManager拥有AudioService的Bp端,是AudioService在客户端的一个代理。

几乎所有客户端对AudioManager进行的请求,最终都会交由AudioService实现。

AudioSystem:

AudioService的功能实现依赖AudioSystem类,AudioSystem无法实例化,它是java层到native层的代理。

AudioService将通过它与AudioPolicyService以及AudioFlinger进行交互

C++:

AudioFlinger,AudioPolicyServices和MediaPolicyService

AudioFlinger与AudioPolicyServices:

Android音频系统的两大服务,一个服务是AudioPolicyService,另一个服务是audioflinger。

这两大服务都在系统启动时有MediaSever加载,加载的代码位于:frameworks/base/media/mediaserver/main_mediaserver.cpp

AudioFinger是Audio系统的工作引擎,管理者系统中输入输出音频流,并承担音频数据混音,以及读写Audio硬件等工作以实现数据的输入输出功能。

AudioPolicyService是Audio系统策略控制中心,具体负责掌管系统中声音设备的选择和切换,音量控制等功能。

而真正去执行选择和切换或者音量控制的动作是在AudioPolicyManager中进行的

Android Audio 系统介绍1

深入理解Android 卷3 AudioService

Audiosystem1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值