Android Audio架构
下面是来自Android官方的Audio架构图,比较清楚地说明了android中audio的组成。
出处:https://source.android.com/devices/audio/index.html
Audio
Android's audio Hardware Abstraction Layer (HAL) connects the higher-level, audio-specific framework APIs in android.media to the underlying audio driver and hardware. This section includes implementation instructions and tips for improving performance.
Audio Architecture
Android audio architecture defines how audio functionality is implemented and points to the relevant source code involved in the implementation.
Figure 1. Android audio architecture
- Application framework
- The application framework includes the app code, which uses the android.media APIs to interact with audio hardware. Internally, this code calls corresponding JNI glue classes to access the native code that interacts with audio hardware.
- JNI
-
The JNI code associated with android.media calls lower level native code to access audio hardware. JNI is located in
frameworks/base/core/jni/
andframeworks/base/media/jni
. - Native framework
-
The native framework provides a native equivalent to the android.media package, calling Binder IPC proxies to access the audio-specific services of the media server. Native framework code is located in
frameworks/av/media/libmedia
. - Binder IPC
-
Binder IPC proxies facilitate communication over process boundaries. Proxies are located in
frameworks/av/media/libmedia
and begin with the letter "I". - Media server
-
The media server contains audio services, which are the actual code that interacts with your HAL implementations. The media server is located in
frameworks/av/services/audioflinger
. - HAL
-
The HAL defines the standard interface that audio services call into and that you must implement for your audio hardware to function correctly. The audio HAL interfaces are located in
hardware/libhardware/include/hardware
. For details, see hardware/audio.h. - Kernel driver
-
The audio driver interacts with your hardware and HAL implementation. You can use Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), or a custom driver (HAL is driver-agnostic).
Note: If you use ALSA, we recommend
external/tinyalsa
for the user portion of the driver because of its compatible licensing (the standard user-mode library is GPL-licensed). - Android native audio based on Open SL ES (not shown)
- This API is exposed as part of Android NDK and is at the same architecture level as android.media.
Android Audio架构相关推荐
- 一篇不错的Android Audio架构代码梳理总结
一篇不错的Android Audio架构代码梳理总结 2014-08-22 14:03:41 分类: LINUX 为android系统添加USB AUDIO设备的放音和录音功能 分类: Androi ...
- Android Audio 架构分析
一个音频系统大概包括音频的管理.声音播放.声音录音和声音音效几个部分,这几个部分分工协作来完成音频的功能, ·音频管理:负责音量调节.音频设备选择.响铃模式选择等: ·声音播放:负责一个音频流的创建. ...
- Android 音频(Audio)架构
一.概述 Android 的音频硬件抽象层 (HAL) 可将 android.media 中特定于音频的较高级别的框架 API 连接到底层音频驱动程序和硬件.本部分介绍了有关提升性能的实现说明和提示. ...
- Android audio篇章(1)------Audio架构
文章目录 前言 一.Android和Linux的区别? 二.Audio架构 1. Audio音频子系统架构图 2. Audio HAL层的功能以及理解 2.1. Audio HAL层的框架分析 2.2 ...
- Android Qcom Audio架构学习
总结: Android Audio不简单呀,一个人摸索入门不容易的,研究了一段时间,感觉还不是很懂,但以下的知识对入门还是有帮助的. Audio架构中的名词 FE(Front End) 提供pcm的设 ...
- android 7 audio架构,GitHub - zozo825117/ble_audio_android: android audio框架
ble_audio_android android audio框架 蓝牙BLE又称bluetooth smart,主打的是低功耗和快速链接,所以在支持的profile并没有audio的部分,而蓝牙语音 ...
- Android底层开发之Audio HAL Android Audio Overview
http://blog.csdn.net/kangear/article/details/44939429 Android底层开发之Audio HAL 在Android音频底层调试-基于tinyals ...
- linux与安卓系统目录,android系统架构及源码目录结构
1. android系统架构: android系统架构采用了分层架构的思想,如下图所示,从上到下共4层,分别为:应用程序层.应用程序框架层.系统库和android运行时层.linux内核层. 每层功能 ...
- 《深入理解Android 5 源代码》——第1章,第1.2节剖析Android系统架构
本节书摘来自异步社区<深入理解Android 5 源代码>一书中的第1章,第1.2节剖析Android系统架构,作者 李骏,更多章节内容可以访问云栖社区"异步社区"公众 ...
- [Android] AudioEffect架构:从上层调用到底层音效驱动
一上层的API说明 二JNI以及配置文件相关文件 三交互 四音效驱动 五分析AudioEffect架构的意图 六代码以及控制说明 本篇文章,只研究架构,不谈具体音效的实现算法. 一,上层的API说明 ...
最新文章
- 赠书 | 熵的实际应用,赌场和金融圈最著名的一个数学公式
- WinForm 异步调用方法
- offer from university of edinburgh
- 文件,文件夹的创建和删除
- android 上线apk,码云 Android apk 在线构建功能上线啦!
- 自动感光调节LED灯亮度C语言程序,单片机PWM调节LED灯亮度
- 【BZOJ2154】Crash的数字表格,数论练习之二维LCM(莫比乌斯反演)
- 10分钟装好宝塔面板,一键管理服务器
- 树链剖分(bzoj 1036: [ZJOI2008]树的统计Count)
- java字符串转字符串数组_Java字符串数组到字符串
- C++ vector简单demo
- 软工作业PSP与单元测试训练 15100231
- MySQL主从同步(三)——M-S-S架构配置实战
- 运动蓝牙耳机什么牌子好,运动蓝牙耳机排行榜
- php redis 清除队列,PHP Redis Queue
- 高效记忆/形象记忆(09)英语单词记忆-拼音法
- 文件夹排序(先文件夹排序,后文件排序)
- 服务器电源维修书籍,380G5服务器电源维修经历.pdf
- 闲鱼平台API,item_app获得闲鱼原生数据
- sh报错 [: unexpected operat