Android Audio BSP工程师 需要清楚的基本知识点

版权声明:本文为博主原创文章,若要转载请注明出处。 https://blog.csdn.net/Qidi_Huang/article/details/72926396

【前言】

    这是我根据自己的工作经验所总结,有一定代表性,但可能不齐全。这只是个提纲。


【知识点】

    按照在操作系统中的层次划分,从上到下依次为:

1、Android系统分层模型。知道 APP、JNI、Frameworks、HAL、Driver 的划分以及 用户空间、内核空间 的概念。

2、Android Audio模块的启动、加载 及 放音/录音 流程。起码应该了解 AudioServer、AudioFlinger、AudioPolicyService、AudioPolicyManager、AudioTrack、Track、TrackHandle、PlaybackThread、RecordThread 这些部件分别在什么时候起作用。

3、Android系统常见分区的作用。例如 /boot、/system、/data、/sdcard、/sys、/proc、/dev。

4、Android系统启动流程。这里指的是在 init 进程跑起来之后各 Android 核心进程的启动顺序,比如 Zygote、Dalvik(或 ART)、SystemServer 等以及各种 server 和 service。

5、Linux Kernel启动流程主要是 设备上电、bootloader、zImage、ramdisk、驱动模块、init进程 这些。

6、设备驱动开发的一般流程及常用函数。这个没什么好说的。

7、ALSA架构 及 ASoC 概念。知道 DAPM、Widget、kControl、Codec Driver、Platform Driver、Machine Driver、DAI、DAI_LINK、DPCM、Tinyalsa 的含义。

8、能阅读 电路原理图 和 芯片Datasheet


【题外话】

    其实我一直不认为 Android 是真正的操作系统,因为操作系统的几大主要功能,即 进程调度、内存管理、文件系统管理、socket管理、进程间通信,这些都是由底层的 Linux 提供的。从我上方第 4 点的描述里也可以看出 ,所谓的 Android 系统实际上是跑在 Linux 之上的一系列进程的总和。

    不知道我的这个理解是否有问题,如果说得有偏差,欢迎各位朋友拍砖。



阅读更多
换一批

没有更多推荐了,返回首页