AudioService 是一个 Java 服务,主要用于控制音频输入输出的过程,如调节音量大小,设置音量模式,设置蓝牙音频的模式,我现在具体分析和AudioService 相关的软件层。
 它主要是为向应用层提供控制音频输入输出的过程的接口。
1.Application Framework
AudioManager.java
   AudioManager 持有IAudioService 对象,IAudioService ,调用 AudioService.java 中的方法,按照Binder 服务的模式进行调用。
AudioSystem.java
   AudioService 的具体功能是通过调用 AudioSystem的方法来实现的。但是 AudioSystem 也只是向Application 提供 Audio 本地代码的功能的接口。
   AudioSystem 通过 JNI android_media_AudioSystem.cpp 调用 本地代码
android_media_AudioSystem.cpp
   这个JNI 调用 AudioSystem.cpp 中的方法
AudioService.java
   AudioService,是一个 Java 服务,通过Binder 方式,用IAudioService向AudioManager 或者 Application 提供调用接口,可以进行本进程调用,也可以进行跨进程的调用。
2.Libaries And Android Runtime
   AudioSystem.cpp
   通过 IAudioFlinger 和 IAudioPolicyService 调用  AudioFlinger 和 AudioPolicyService

对AudioService 的认识(1)相关推荐

  1. 《深入理解Android:卷III A》一一第3章 深入理解AudioService

    第3章 深入理解AudioService 本章主要内容: 探讨AudioService如何进行音量管理 了解音频外设的管理机制 探讨AudioFocus的工作原理 本章涉及的源代码文件名及位置: Au ...

  2. android音频系统(4):AudioService之音量管理

    前言:AudioService这个系统服务包含或者使用了几乎所有与音频有关的内容,AudioService是音频系统在java层的大本营: android音频系统,分为两个部分:数据流和策略: 数据流 ...

  3. android音频系统(5):AudioService之音频焦点

    前言:上一节我们分析了AudioService对音量的管理,这一节来看下AudioService对音频焦点的处理,也就是音频系统中的AudioFocus机制,它用来处理多个音频不合理的同时播放的糟糕后 ...

  4. Audioservice、Audiomanager和Audiosystem

    JAVA: Audioservice.Audiomanager和Audiosystem AudioService: 继承自IAudioService.Stub,IAudioService.Stub类很 ...

  5. AudioService

    1.AudioService主要在java层主要有三个方面的作用: (1) 音量管理 (2) 音频设备管理 (3) AudioFocus(音频焦点)机制 2.源码路径: ./frameworks/ba ...

  6. Android AudioService安全音量设置逻辑

    问题点描述: 还原出厂设置后,第一次启动安卓系统会自动降音量设成10,导致开机时音量不一致问题. 原因:安全音量逻辑将音量设置为10 安全音量配置和音量值 \frameworks\base\core\ ...

  7. Android音量控制曲线

    摘要:本文介绍了android音量的控制曲线的计算方法. 由于人耳对声音的听感具指数曲线型,也就是对小音量时比较敏感,随着声音的加大其听感随之变的不敏感,其变化近似指数函数曲线的形式.为了使听感变的近 ...

  8. 从 Android 静音看正确的查bug的姿势?

    0.写在前面 没抢到小马哥的红包,无心回家了,回公司写篇文章安慰下自己TT..话说年关难过,bug多多,时间久了难免头昏脑热,不辨朝暮,难识乾坤...艾玛,扯远了,话说谁没踩过坑,可视大家都是如何从坑 ...

  9. Android 解读Event和Main Log

    1 Android P EventLogTags文件 Android P 9.0.0 所有EventLogTags文件List: system/bt/EventLogTags.logtags syst ...

最新文章

  1. ES6中的异步对象Promise
  2. NIO详解(三):IO多路复用模型之select、poll、epoll
  3. 使用css实现点击切换效果
  4. CSS Hide(隐藏元素)
  5. 数据库连接配置 app.config web.config
  6. 计算机配置型号及主要技术指标,显卡性能看什么参数(新手必备的显卡性能知识全解)...
  7. python内点法_python射线法判断一个点在图形区域内外
  8. 参加集成电路EDA设计精英挑战赛的体会
  9. 与计算机运算速度相关参数,计算机CPU运算速度是多少
  10. BZOJ2820:YY的GCD
  11. Python编程 从入门到实践 第2版
  12. 调用微信公众号API,实现主动给粉丝发送消息
  13. SQL NOW() 函数
  14. 质量功能配置(QFD)矩阵
  15. 预测:深度学习未来的6种可能
  16. 【Web3】什么是Web3?一个新的去中心化网络,或是最新的营销流行语
  17. 如何深入理解php中的值传递和引用传递
  18. 写一个函数判断输入的数字是否为素数 (js)
  19. 查题公众号搭建详细教程,提供永久免费接口
  20. 【STM32】定时器TIM触发ADC采样,DMA搬运到内存(超详细讲解)

热门文章

  1. 小米6android9原生rom,小米6 安卓10 原生体验 LineageOS17.1 流畅 ROOT
  2. 往事如烟 - 潜先生
  3. Springboot毕设项目创意摄影交流平台sek0o(java+VUE+Mybatis+Maven+Mysql)
  4. c# 第二节 c#的常用IDE环境
  5. 测试文章样式2222222222
  6. kubernetes 部署_用于Kubernetes部署的10种反模式
  7. Android关于易源数据网络接口的使用
  8. 如何找回不小心删除的PDF文档?
  9. 计算机科学专业学什么,计算机科学与技术专业学什么
  10. wifi收发数据包分析