Android P(Car) Audio系统:从CarAudioManager到tinyalsa

从CarAudioService到tinyalsa

本着从小白视角入手,从Java层到C++/C层调用流程。

瞎扯

为什么要写博客,因为我相信只有不断输出才能不断学习不断进步,也就是有输出才能带动输入。另外通过写博客或许还能发现自己的理解上的缺陷,利己利人。总的来说百利而无一害吧。

正文

本文将从调用者(CarAudioManager)开始,到tinyalsa结束,从调用角度来看一看audio系统大概流程。
音量调节分为两种实现,一种是Android原生(手机)通过设置PCM数据直接调节输出的振幅来调节音量,也是就是软音量。另外一种则是通过硬件来实现音量大小控制,也就是所谓的硬音量,通过DSP设置硬件功放等来进行音量大小控制。本文介绍的是车机行业普遍采用的方式,也就是后一种方式。我将尽量采用最简单有效的方式进行呈现:画图。能画画就绝不写写。not need read the fucking code again!
先看下整理的调用流程:
Android P(Car) Audio系统:从CarAudioManager到tinyalsa
未完待续。。。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。