原址

【前言】

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

【知识点】

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

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 之上的一系列进程的总和。

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

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

  1. Android底层开发之Audio HAL Android Audio Overview

    http://blog.csdn.net/kangear/article/details/44939429 Android底层开发之Audio HAL 在Android音频底层调试-基于tinyals ...

  2. 什么是BSP工程师?

    文章转自 https://luomuxiaoxiao.com/?p=170 一.嵌入式系统 要明白什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)说起.维基百科上对嵌入式系统的定义如下: 嵌入 ...

  3. Android Audio打开输出设备流程(十五)

    android audio 生产者与消费者 简介 全面接触生产者/消费者问题是在操作系统原理中,并发性原理讨论的问题 生产者/消费者问题.最近的工作偏向音频,接着上一篇文章,用生产者,消费者模型来理解 ...

  4. Android Audio音频通路(七)

    android audio 生产者与消费者 简介 全面接触生产者/消费者问题是在操作系统原理中,并发性原理讨论的问题 生产者/消费者问题.最近的工作偏向音频,接着上一篇文章,用生产者,消费者模型来理解 ...

  5. Android audio切换设备通道流程(二十八)

    Android audio切换设备通道流程 1.frameworks/base/media/java/android/media/AudioManager.java public void setMo ...

  6. <一>Android Audio音频框架

    目录 1.0 设备驱动 2.0  android hal层 3.0  选择设备的暗箱策略AudioPolicy 4.0  软件层面的混音,AudioFlinger 5.0 完整的对外接口 AudioS ...

  7. android 7 audio架构,GitHub - zozo825117/ble_audio_android: android audio框架

    ble_audio_android android audio框架 蓝牙BLE又称bluetooth smart,主打的是低功耗和快速链接,所以在支持的profile并没有audio的部分,而蓝牙语音 ...

  8. Android Audio - 支持多个APK同时录音

    Android Audio - 支持多个APK同时录音 原理说明 Android4.4 修改方法 Android5.1 & 6.0 修改方法 Android8.1 修改方法 Android9. ...

  9. Day03 BSP工程师小白的第一步-------今天开始正式学C语言

    为什么要学C语言? 因为C语言在高级语言中运行效率最高,并且作为最古老的计算机语言之一,C语言涉及了很多底层的知识,比如:内存.寻址.并且Windows.Linux.Unix 等操作系统的内核 90% ...

最新文章

  1. Day03 - Ruby比一比:Module的include与extend
  2. A*寻路算法的探寻与改良(三)
  3. mysql连接查询拒绝服务漏洞_MySQL-连接查询
  4. vue调用百度地图API
  5. 中国科学院计算机网络信息中心领导,中国科学院计算机网络信息中心
  6. IO多路复用中select、poll、epoll之间的区别
  7. 数据科学之:消费者资产分析
  8. 使用Eclipse查看反编译后的代码(Decompiler 插件)
  9. 【转】请不要做浮躁的人。
  10. 第八章软件构造的性能——程序的动态分析方法与工具
  11. P61-前端基础HTML-表单入门介绍
  12. C语言输出平行四边形,菱形
  13. 将一个3*3的矩阵转置,用一个实现。在主函数中用scanf函数输入以下矩阵元素
  14. 这才叫装机必备,这3款高质量电脑软件,内存满了也绝不卸载
  15. (八)JVM成神路之GC分区篇:G1、ZGC、ShenandoahGC高性能收集器深入剖析
  16. 点评2008年九大经济学家惊人语录
  17. windows10如何开机自动运行bat文件
  18. 小tip:IE不支持CSS3多背景的替代解决方案
  19. 原生js验证简洁美观注册登录页面
  20. 父类,子类中方法的调用

热门文章

  1. andoid-sdk 安装时出现 Stopping ADB server failed(code -1) 错
  2. 用CSS制作可交换带事件处理的图片按钮
  3. Kdb+和Q语言使用-银行系统
  4. 智能听音公司Soundhawk获得550万美元融资,通过降噪算法让用户听到真正想听的声音
  5. 【Qtcreator】qtcreator的基本使用方法
  6. c++11新特性的使用---可变模板参数、lambda、type_traits、optional综合使用
  7. 深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)
  8. 介电常数和电容的关系_第二章:关于电力基础物理知识之认识电容器01
  9. excel自动调整列宽_Excel双击鼠标的9种用法
  10. co88 sap 实际结算_SAP 物料帐的基本原理