下面是来自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/ and frameworks/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 inframeworks/av/media/libmedia.
Binder IPC
Binder IPC proxies facilitate communication over process boundaries. Proxies are located inframeworks/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 inhardware/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架构相关推荐

  1. 一篇不错的Android Audio架构代码梳理总结

     一篇不错的Android Audio架构代码梳理总结 2014-08-22 14:03:41 分类: LINUX 为android系统添加USB AUDIO设备的放音和录音功能 分类: Androi ...

  2. Android Audio 架构分析

    一个音频系统大概包括音频的管理.声音播放.声音录音和声音音效几个部分,这几个部分分工协作来完成音频的功能, ·音频管理:负责音量调节.音频设备选择.响铃模式选择等: ·声音播放:负责一个音频流的创建. ...

  3. Android 音频(Audio)架构

    一.概述 Android 的音频硬件抽象层 (HAL) 可将 android.media 中特定于音频的较高级别的框架 API 连接到底层音频驱动程序和硬件.本部分介绍了有关提升性能的实现说明和提示. ...

  4. Android audio篇章(1)------Audio架构

    文章目录 前言 一.Android和Linux的区别? 二.Audio架构 1. Audio音频子系统架构图 2. Audio HAL层的功能以及理解 2.1. Audio HAL层的框架分析 2.2 ...

  5. Android Qcom Audio架构学习

    总结: Android Audio不简单呀,一个人摸索入门不容易的,研究了一段时间,感觉还不是很懂,但以下的知识对入门还是有帮助的. Audio架构中的名词 FE(Front End) 提供pcm的设 ...

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

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

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

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

  8. linux与安卓系统目录,android系统架构及源码目录结构

    1. android系统架构: android系统架构采用了分层架构的思想,如下图所示,从上到下共4层,分别为:应用程序层.应用程序框架层.系统库和android运行时层.linux内核层. 每层功能 ...

  9. 《深入理解Android 5 源代码》——第1章,第1.2节剖析Android系统架构

    本节书摘来自异步社区<深入理解Android 5 源代码>一书中的第1章,第1.2节剖析Android系统架构,作者 李骏,更多章节内容可以访问云栖社区"异步社区"公众 ...

  10. [Android] AudioEffect架构:从上层调用到底层音效驱动

    一上层的API说明 二JNI以及配置文件相关文件 三交互 四音效驱动 五分析AudioEffect架构的意图 六代码以及控制说明 本篇文章,只研究架构,不谈具体音效的实现算法. 一,上层的API说明 ...

最新文章

  1. 赠书 | 熵的实际应用,赌场和金融圈最著名的一个数学公式
  2. WinForm 异步调用方法
  3. offer from university of edinburgh
  4. 文件,文件夹的创建和删除
  5. android 上线apk,码云 Android apk 在线构建功能上线啦!
  6. 自动感光调节LED灯亮度C语言程序,单片机PWM调节LED灯亮度
  7. 【BZOJ2154】Crash的数字表格,数论练习之二维LCM(莫比乌斯反演)
  8. 10分钟装好宝塔面板,一键管理服务器
  9. 树链剖分(bzoj 1036: [ZJOI2008]树的统计Count)
  10. java字符串转字符串数组_Java字符串数组到字符串
  11. C++ vector简单demo
  12. 软工作业PSP与单元测试训练 15100231
  13. MySQL主从同步(三)——M-S-S架构配置实战
  14. 运动蓝牙耳机什么牌子好,运动蓝牙耳机排行榜
  15. php redis 清除队列,PHP Redis Queue
  16. 高效记忆/形象记忆(09)英语单词记忆-拼音法
  17. 文件夹排序(先文件夹排序,后文件排序)
  18. 服务器电源维修书籍,380G5服务器电源维修经历.pdf
  19. 闲鱼平台API,item_app获得闲鱼原生数据
  20. sh报错 [: unexpected operat

热门文章

  1. python实现均匀分配_python 实现生成均匀分布的点
  2. 删除后别人的微信号变成wxid_怎么恢复删除的微信好友?教程在手,不怕恢复不了!_...
  3. k2刷机小小的流程记录
  4. 数据库概念设计与逻辑设计
  5. Ubuntu界面美化
  6. 零基础无实物一步一步学PLCS7-1200仿真(一)--电动机的点动控制
  7. Java基础-构造函数
  8. 抽35块树莓派新品单片机送给可爱的你们
  9. 页面加载缓冲的login
  10. 啦啦啦啦啦_开放组织读书俱乐部:啦啦队长如何设定方向