![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android13音频系统
文章平均质量分 97
基于Android13源码,分析音频子系统
余静江
Android系统开发
展开
-
Android13音频子系统分析(四)---座舱的多音区框架
Google在Android核心系统的基础上,为车机系统扩展了一套针对智能座舱场景下的多音区框架,多音区是指在汽车中,不同的用户可以单独使用多媒体功能。比如:司机可以在驾驶舱中播放音乐,后排的乘客可以用耳机连上后座显示屏,观看视频,互相独立不受干扰。在介绍多音区框架之前,需要先简单介绍一下AAOS(Android Automotive)架构。原创 2023-10-28 17:10:44 · 3824 阅读 · 6 评论 -
Android13音频子系统分析(三)---音效算法集成框架
Android的音效架构中,将所有的音效算法全部挂载到AudioHAL进程中运行。根据音效算法应用的位置,可以分为三类:Track音效、Stream音效、Device音效。即:针对某一个Track的处理音效、针对某种StreamType的处理音效、针对某个Device的处理音效。在中我们已经看到,Track只是在APP层和AudioServer框架层中的概念,到了AudioHAL层已经没有Track的概念,只有Stream和Device。原创 2023-10-13 23:48:44 · 3902 阅读 · 0 评论 -
Android13音频子系统分析(二)---初始化
本文我会分别介绍AudioFlinger、AudioPolicyService和AudioService这三个模块的初始化过程。AudioHAL进程的核心源码AOSP里面没有,所以这里不做介绍。想了解AudioHAL进程的启动流程,可以从/hardware/interfaces/audio/common/all-versions/default/service/service.cpp文件的main()函数入手,进行分析。原创 2023-09-20 18:44:29 · 3085 阅读 · 7 评论 -
Android13音频子系统分析(一)---整体架构
本文基于AOSP13源码进行分析解读。所以与各个SoC平台厂商提供的运行在真实设备上的源码会有细微差异,但核心原理区别不大。音频子系统在Android中是一个较为复杂的子系统,横跨应用API层,框架层,Native层和HAL层。使用Java、C++、C语言进行编写。运行在Linux用户空间的4个进程中:APP应用进程(API层的代码)、SystemServer进程(框架层的代码)、AudioServer进程(Native层的代码)、AudioHAL进程(HAL层的代码)。原创 2023-09-14 16:34:52 · 6991 阅读 · 15 评论