Android Audio 1:Android Audio概述
来源:互联网 发布:社交媒体数据分析 编辑:程序博客网 时间:2024/06/07 15:29
注:本系列开始的一些文章主要是以翻译Google官方的文档为主。
1. Android Audio
Android的音频HAL(硬件抽象层)连接着更上层的, 在android.media包中的音频专属的API和更下层的驱动与硬件,粗略的分,可以将HAL分为一层,用户空间和内核空间分一层。
本系列主要讲述Audio的实现以及提高性能的一些tips.
2. Audio架构及代码分布
Android audio架构定义了audio是如何实现的,同时也指明这个实现涉及到的相关代码。
Android audio架构图:
下面简单介绍一下这个架构图:
Application framework
这部分包括App的代码,App使用android.media中的API来和audio硬件交互。在内部,App是通过JNI调用对应的native代码。JNI
Framework的api需要通过JNI调用到更下层的实现。是一个中介的作用。JNI的代码位于:frameworks/base/core/jni 和 frameworks/base/media/jni.Native framework
它提供和Framework相对应的本地实现,通过调用Binder代理和media server交互。代码位于:frameworks/av/media/libmediaBinder IPC
通过Binder跨进程和media server交互。Binder Proxy一般是以I开头的文件。代码位于:frameworks/av/media/libmediaMedia server
包括AudioFlinger和AudioPolicy, 它们是真正直接和HAL打交道的服务,代码位于:frameworks/av/services/audioflinger
frameworks/av/services/audiopolicyHAL
HAL定义了标准的接口,必须实现这些接口才能让Audio正常工作起来。接口定义文件:
hardware/libhardware/include/hardware/audio.hKernel driver
Driver连接着HAL和硬件,厂商可以使用ALSA, OSS或者自定义的driver。Android native audio based on Open SL ES
这部分在结构图中没有展示出来,这部分API是Android NDK的一部分,它的结构位置和android.media相同。
- Android Audio 1:Android Audio概述
- android-audio系统1
- Android Audio
- android audio
- android audio
- android Audio
- android audio
- Android audio
- android audio
- Android Audio
- [Audio] Android深入浅出之Audio
- [Audio] Android Audio 相关知识
- Android Audio System 架构初探:概述
- Android Audio System (1)zz
- Android深入浅出之Audio第三部分Audio Policy[1]
- Android深入浅出之Audio第三部分Audio Policy[1]
- Android深入浅出之Audio第三部分Audio Policy[1]
- Android深入浅出之Audio第三部分Audio Policy[1]一
- hdu4697Park Visit(找节点)
- 碎碎念
- c++设计模式之状态模式
- 新人bloger的开始
- java.lang.StackOverflowError出现的原因
- Android Audio 1:Android Audio概述
- 获取任意字符的Unicode值
- SQL使用IN超过1000个条件的处理
- NOIP 2012 - 普及组 摆花 递推 重庆一中高2018级竞赛班第六次测试 2016.7.31 Problem 3
- $符整理
- android学习之路-2
- HDU-1299 Diophantus of Alexandria(数论:因子数)
- 初学iOS--UITextField
- 环境变量中Path与CLASSPATH的区别