对AudioService 的认识(1)
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)相关推荐
- 《深入理解Android:卷III A》一一第3章 深入理解AudioService
第3章 深入理解AudioService 本章主要内容: 探讨AudioService如何进行音量管理 了解音频外设的管理机制 探讨AudioFocus的工作原理 本章涉及的源代码文件名及位置: Au ...
- android音频系统(4):AudioService之音量管理
前言:AudioService这个系统服务包含或者使用了几乎所有与音频有关的内容,AudioService是音频系统在java层的大本营: android音频系统,分为两个部分:数据流和策略: 数据流 ...
- android音频系统(5):AudioService之音频焦点
前言:上一节我们分析了AudioService对音量的管理,这一节来看下AudioService对音频焦点的处理,也就是音频系统中的AudioFocus机制,它用来处理多个音频不合理的同时播放的糟糕后 ...
- Audioservice、Audiomanager和Audiosystem
JAVA: Audioservice.Audiomanager和Audiosystem AudioService: 继承自IAudioService.Stub,IAudioService.Stub类很 ...
- AudioService
1.AudioService主要在java层主要有三个方面的作用: (1) 音量管理 (2) 音频设备管理 (3) AudioFocus(音频焦点)机制 2.源码路径: ./frameworks/ba ...
- Android AudioService安全音量设置逻辑
问题点描述: 还原出厂设置后,第一次启动安卓系统会自动降音量设成10,导致开机时音量不一致问题. 原因:安全音量逻辑将音量设置为10 安全音量配置和音量值 \frameworks\base\core\ ...
- Android音量控制曲线
摘要:本文介绍了android音量的控制曲线的计算方法. 由于人耳对声音的听感具指数曲线型,也就是对小音量时比较敏感,随着声音的加大其听感随之变的不敏感,其变化近似指数函数曲线的形式.为了使听感变的近 ...
- 从 Android 静音看正确的查bug的姿势?
0.写在前面 没抢到小马哥的红包,无心回家了,回公司写篇文章安慰下自己TT..话说年关难过,bug多多,时间久了难免头昏脑热,不辨朝暮,难识乾坤...艾玛,扯远了,话说谁没踩过坑,可视大家都是如何从坑 ...
- Android 解读Event和Main Log
1 Android P EventLogTags文件 Android P 9.0.0 所有EventLogTags文件List: system/bt/EventLogTags.logtags syst ...
最新文章
- ES6中的异步对象Promise
- NIO详解(三):IO多路复用模型之select、poll、epoll
- 使用css实现点击切换效果
- CSS Hide(隐藏元素)
- 数据库连接配置 app.config web.config
- 计算机配置型号及主要技术指标,显卡性能看什么参数(新手必备的显卡性能知识全解)...
- python内点法_python射线法判断一个点在图形区域内外
- 参加集成电路EDA设计精英挑战赛的体会
- 与计算机运算速度相关参数,计算机CPU运算速度是多少
- BZOJ2820:YY的GCD
- Python编程 从入门到实践 第2版
- 调用微信公众号API,实现主动给粉丝发送消息
- SQL NOW() 函数
- 质量功能配置(QFD)矩阵
- 预测:深度学习未来的6种可能
- 【Web3】什么是Web3?一个新的去中心化网络,或是最新的营销流行语
- 如何深入理解php中的值传递和引用传递
- 写一个函数判断输入的数字是否为素数 (js)
- 查题公众号搭建详细教程,提供永久免费接口
- 【STM32】定时器TIM触发ADC采样,DMA搬运到内存(超详细讲解)
热门文章
- 小米6android9原生rom,小米6 安卓10 原生体验 LineageOS17.1 流畅 ROOT
- 往事如烟 - 潜先生
- Springboot毕设项目创意摄影交流平台sek0o(java+VUE+Mybatis+Maven+Mysql)
- c# 第二节 c#的常用IDE环境
- 测试文章样式2222222222
- kubernetes 部署_用于Kubernetes部署的10种反模式
- Android关于易源数据网络接口的使用
- 如何找回不小心删除的PDF文档?
- 计算机科学专业学什么,计算机科学与技术专业学什么
- wifi收发数据包分析