Home
Journey of Android
Cancel

Android audio framework

Android 音频服务框架的内容说多不多,说少也不少,网上也有各种的教程。我看过的比较系统性的描述就是林学森老师的《深入理解Android 内核设计思想》,里面分为 AudioTrack、AudioFlinger 和 AudioPolicyService 三部分来讲解 Audio 模块,但是随着 Android 的演变,现在已经不能涵盖遇到的所有场景,所以从自身实际了解出发,总结下这部...

Android.bp syntax and usecase

在实际开发过程中,经常会遇到通过 宏/环境变量 判断是否加载某个模块,这时就需要进行条件编译。 Android 7.0 前使用 Android.mk 来编译模块,makefile 支持条件编译;但是 Android 7.0 之后逐步被 Android.bp 取代,Android.bp 本质上是 json 配置文件,不支持条件判断,所以 Google 提供了通过 go 语言来实现 Andro...

audio performance - binder

Binder

native crash - audioserver crash

Audioserver crash

audio performance - systrace

Systrace

Android HAL 与 HIDL 开发实例

关于 Android HAL 与 HIDL Android 8.0之后,Google 为了解决 Android 版本碎片化问题,推出了 treble 架构,核心思想就是 vendor 分区和 system 分区的隔离。把厂商的修改限制在 vendor 分区,system 分区由 Google 把控。system 访问vendor 分区的话,需要通过 HIDL 的形式来访问。 /dev/bi...

Android.bp makefile and soong

Android编译系统,Android.bp、Soong以及Android.mk

android build system

最近,集成杜比音效用到了很多Android编译知识,记录一下 Android编译系统,Android.bp、Soong以及Android.mk Android.bp语法记录,vintf-fragments字段等 Android HIDL使用实例 Android 构造系统 AOSP源码build/README.md, This is the Makefile-ba...

Android audio volume control

简单记录下 Android 原生音量管理,主要包括: Audio 初始化阶段加载音量曲线:Android 音量管理在 audioserver 的 AudioPolicyManager 模块中实现,在 audioserver 初始化时会创建并初始化 AudioPolicyManager,APM 初始化会从 audio_policy_volumes.xml 和 default_volum...

audio playback/record

数据流:编解码 重采样 混音 过音效 AudioTrack::set、start、write Audioclient::prepareTracks_l、AudioFlinger::threadLoop 客户端 AudioTrack OpenSL ES AAudio MediaPlayer audioserver audiohal