自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android R-目录

Android R- CarAudioService之car_audio_configuration.xml解析 Android R- CarAudioService之CarAudioZone(七)-总结上

2021-03-15 01:02:05 723

转载 浅谈Android O Touch声音播放流程

浅谈Android O Touch声音播放流程

2022-05-04 22:56:36 836 1

原创 Android R- CarAudioService之registerAudioPolicy动态注册(三)

前言

2021-06-02 23:16:51 2356 8

原创 Android R- AudioManager之音量调节(一)

前言说到AudioManager的音量调节,首先就要说下音量的初始化,我们知道AudioManager只是提供了接口的API,其音量调节的核心逻辑都是在AudioService中实现的。那么今天就先说说AudioService。正文AudioService作为一个SystemServer它的音量是如何初始化起来的?说到音量初始化先看几个数组Max Volume所有streamType对应的最大音量 /** Maximum volume index values for audio stre

2021-06-02 00:37:47 3222 3

原创 Android R- CarAudioService之registerAudioPolicy动态注册(二)

前言Android 在O之后增加了CarAudio,增加了多音区,增加了动态路由,而对于Audio的三大块AudioTrack、AudioFlinger和AudioPolicy。CarAudio主要解决的就是车载上的AudioPolicy策略。我们之前分析了car_audio_configuration.xml的解析,以及解析后如何构建路由策略和多音区的AudioFocus,今天继续分析。解析后的路由策略是如何注册到AudioPlolicy中,以及如何应用在我们系统中的。正文在整个CarAudio启动

2021-05-14 00:00:04 2135 6

原创 Android R- CarAudioService之registerAudioPolicy动态注册(一)

前言我们解析完成car_audio_configuration.xml后,接下来就是动态路由策略的注册,以及多音区的焦点管理,本篇先看下动态路由策略。正文CarAudioService启动后,我们先回顾下setupDynamicRoutingLocked这个函数 private void setupDynamicRoutingLocked() { final AudioPolicy.Builder builder = new AudioPolicy.Builder(mConte

2021-03-17 01:57:36 2261 1

原创 Android R- CarAudioService之car_audio_configuration.xml解析

前言关于car_audio_configuration.xml的解析这部分在Android R上还是有一点变化的。具体我们一步一步来分析下其解析原理和过程。car_audio_configuration.xml

2021-03-15 00:51:38 4052 1

原创 2020年末杂谈

前言不知道从哪里开始说起,好像还未开始,2020就结束了。从年初带上口罩,到年底仍没有摘掉,每天的地铁还是那么拥堵,还是在不厌其烦的扫着行程码。疫情还没有褪去,2020却要结束了。回望一年,年纪长了,脾气也长了,头发还是没有少,钱包还是没有钱。博客写写停停,总是被工作困扰,又总是被生活压迫。2020仍是一无所有,仍在路上,仍在发生。正文以前写博客是希望在源码的路上对自己有更多的帮助,可有些时候回去看自己写的源码分析,真的不忍直视。我开始反思,开始不再写博客,开始把更多的笔记写到本子上,可后来本子还是丢

2020-12-08 01:24:39 439 4

原创 AndroidQAudioPolicyManager之初始化篇initialize

阿三

2020-05-31 23:29:10 2407 3

原创 Android10.0CarAudioZone(六)

前言我们之前分析了CarAudioZone的比较核心的一个Api,setZoneIdForUid,我们知道通过将uid与zoneId绑定到一起的方式,实现多音区的功能。即不同音区的AudioFocus管理互不影响,我们的媒体也可以想播放在哪个Zone中就播放在哪个zone中,只要我们配置好car_audio_configuration.xml,以及设置对应的setZoneIdForUid即可。上一篇分析了AudioFocus在CarAudioZone中如何实现不同音区管理的,那么今天我们继续分析下播放流又

2020-05-21 00:26:34 2412 4

原创 Android10.0CarAudioZone(五)

前言关于CarAudioZone的部分已经说的七七八八了,但我们一直都还有个疑问,既然CarAudioZone分了不同的zone来实现各自的声音路由、音量调节、音频焦点控制等,那么对于应用又是如何才区分使用的是哪个zone的呢,那么就是今天要说的uid正文说到uid,先说下Android的几个概念pid 是process进程iduid 是user 用户idtid(是thead线程id每个应用都有一个uid,和n个pid,以及n个tid,那么三个id的获取方式呢android.os.Proc

2020-05-12 23:40:29 1771 4

原创 Android10.0CarAudioZone(四)

前言上几篇讲了CarAudioZone相关的volume、audiofocus以及device,我们也知道在CarAudioService的初始化过程中,最后通过mAudioManager.registerAudioPolicy(mAudioPolicy)将AudioPolicy注册下去的,那么今天我们继续分析AudioPolicy的register过程。正文...

2020-05-08 21:32:59 1970

原创 Android10.0CarAudioZone(三)

前言我们前面两篇分析了CarAudioZone相关的声音以及音频焦点,基本控制流就差不多了,今天继续看下关于CarAudioZone相关的数据流。正文数据流这块与CarAudioZone的关系到不是很大,因为数据流底层没有zone的概念,只有bus的概念,那么什么是bus,是谷歌专为car弄得一套devices(这里的device概念是framework层的),即AUDIO_DEVICE_O...

2020-05-06 00:47:38 2308 2

原创 Android10.0CarAudioZone(二)

前言上一篇我们主要分析了关于CarAudioZone的CarVolumeGroup,今天我们继续看看剩下CarZonesAudioFocus正文首先还是看没有分析完setupDynamicRouting(SparseArray busToCarAudioDeviceInfo)的这个函数剩余部分 // Setup dynamic routing rules by usage ...

2020-05-03 00:36:42 1893

原创 Android10.0CarAudioZone(一)

前言关于CarAudioZone也就是多音区的一个概念,主要是在AndroidQ上实现的。我们可以参照官方的文档Multi-Zone Overview我的英语实在不敢恭维,这里就不翻译了,大家阅读自行翻译吧。我简单描述下多音区的概念,就是这么一种环境,后排乘客通过后排屏幕可以看电影,前排司机通过前排屏幕可以听音乐,大家互不影响。每一个屏都有自己专属的一个区域也就是zone的概念。这种前后屏的概念...

2020-04-30 23:09:42 4970 4

原创 Android10.0MediaPlayerService中选择player的评分机制

前言

2020-04-21 00:33:14 525 1

原创 Android10.0Auidio之MediaPlayer(五)

前言前边分析了MediaPlayer从java通过jni到native层的过程,其实mediaplayer的真正的逻辑存在是在mediaPlayerservice中处理的,那么今天我们就从源码看下mediaplayer的初始化过程正文mediaplayerservice通过mediaserver.rc启动,我们先看下man函数,源码位置/frameworks/av/media/mediase...

2020-04-18 00:35:36 779 1

原创 Android10.0AudioManager之getDevices(二)

前言Android10.0AudioManager之getDevices(一)我们分析了获取Audioport以及AudioPatch的过程,今天继续正文

2020-04-14 01:18:46 2780 1

原创 Android10.0audio_policy_configuration.xml解析

前言今天我们来分析下AudioPolicyManager的初始化过程,以及它是如何来解析audio_policy_configuration.xml的正文先来看看AudioPolicyManager的初始化过程吧,说到AudioPolicyManager那么就得先说AudioPolicyService。我们知道开机上电后会先执行init rc,audioserver就是通过init rc启...

2020-04-10 01:14:45 4742 1

原创 Android10.0AudioManager之getDevices(一)

前言

2020-04-07 21:19:07 5396

原创 Android10.0CarAudio分析之Car

前言不管时代如何,新能源汽车与新兴造车的崛起,带来影响其一就是车载应用的使用的越来越广泛。尤其Android在车载系统中的应用,对于app日渐饱和市场,转行做车载app为何不是一种选择。正文我们也注意到了,Android8.0之后似乎每个版本谷歌对于car相关的功能修改都是很大,说明谷歌也很注重这块,今天我们就来看看Car,为什么先说Car呢,因为好多Api都是通过Car来调用的。先来看C...

2020-04-04 00:31:41 4844

原创 Android10.0AudioFocus之AudioFocusRequest

AudioFocus相关类的说明

2020-04-02 00:02:06 4907

原创 Android10.0AudioFocus之源码分析(二)

前言上一篇我们简单说了AudioFocus如何使用,那么在从源码角度看一下AudioFocus的实现原理呢正文 public int requestAudioFocus(@NonNull AudioFocusRequest focusRequest) { return requestAudioFocus(focusRequest, null /* no AudioPolicy...

2020-04-01 01:23:01 2298 8

原创 Android10.0AudioFocus之如何使用(一)

前言对于音频焦点,很多人会感到很陌生,也很迷惑,不清楚音频焦点到底处理什么的,怎么用。有人说要播放音乐,必须先申请焦点,只有拿到焦点后才能播放音乐,可叶有人说我不申请音频焦点也能播放音乐,因此,今天我们就来说说到底什么是音频焦点,正文AudioFocus机制实在Android2.2引入的,当初是为了协调各应用之间竞争Audio资源的问题,举个简单例子QQ音乐要播放音乐,优酷要播放视频。对于手...

2020-03-30 22:59:18 3200 2

原创 Android10.0Auidio之MediaPlayer(四)

前言之前说了MediaPlayer如何从java层到jni,以及jin如何callback回调到java,今天继续看看native层的mediaplayer又做了什么。正文先说下路径位于frameworks/av/media/libmedia/mediaplayer.cpp,我们先从mediaplayer的构造跟析构函数说起MediaPlayer::MediaPlayer(){ ...

2020-03-27 01:18:23 528

原创 Android10.0Auidio之MediaPlayer (三)

不知不觉就2020年了,不知不觉Android就到了10.0了,考虑了下后续还是基于10.0来继续分析吧。之前说过了MediaPlayer java层的一些API的逻辑。今天继续向下分析...

2020-03-23 23:55:02 660

原创 Android10.0Auidio之MediaPlayer(二)

不知不觉就2020年了,不知不觉Android就到了10.0了,不知不觉又TM好久没更了,不知不觉新冠病毒还是遥遥无期,考虑了下后续还是基于10.0来继续分析吧。MediaPlayer的java层API的使用以及说明网上还是很多的,如果深究其原理呢,会发现最终都调了native XXX方法,其实这就调到了jnistatic { System.loadLibrary("me...

2020-02-24 23:32:42 1411

原创 Android ERROR Code定义

我们在查看Android源码的时候总会看到return OK、NO_ERROR什么的,但这些具体值是多少总是很难查到,下面就把error的定义文件贴出来正文其实文件存在Android系统的/system/core/libutils/include/utils/Errors.h 目录下/* * Copyright (C) 2007 The Android Open Source Projec...

2020-02-18 23:59:57 1694

原创 推荐几个Android源码在线查看的网站

推荐几个在线可查看Android源码的网站,包括最近的Android 10源码哦正文http://androidxref.com/http://aospxref.com/https://www.androidos.net.cn/sourcecode以上三个是个人比较喜欢用的,先说下http://androidxref.com/我们可以从左侧选择不同版本的Android源码查看,比如选...

2019-11-20 22:14:36 19091

原创 Android9.0Auidio之MediaPlayer(一)

2019年就要结束了,回首碌碌无为的一年,对于没有好文凭和好背景(大厂工作经验)的大龄程序员,又背负着各种贷款和养家糊口的压力,总觉得要有点作为,突然有个想法,从application到framework到hal整理下整个audio发声的时序,虽然路慢慢而修远兮,吾将上下而求索。干就得了...

2019-11-18 23:59:53 1561

原创 Android9.0CarAudio分析之而AUDIO_DEVICE_OUT_BUS

最近这几年一直从事车载相关的开发,国内一般车载项目使用最多的系统目前基本应该就是Andoid了,尤其新兴的一些新能源汽车基本搭载的车载系统都是基于Android深度定制的。其实谷歌也搞了套车载东西,今天我们继续说说与汽车相关的 Android的音频架构。正题上一篇分析了CarAudioService的启动过程,今天继续,先分析下CarAudioService的init过程...

2019-11-10 23:37:43 5659 3

原创 Android9.0CarAudio分析之一启动过程

2019年还有不到俩月就结束了,匆匆忙忙慌慌张张又是没有收获的一年,三十好几的大龄程序员,年初信誓旦旦定下养成写博客的习惯的我,看来今年又食言了。以前在思否写过一点东西,但今天还是决定回到csdn,借着19年的尾巴,从0开始。正题我们知道谷歌为汽车单独搞了一套,但由于不是很成熟,因此每个版本变更时Car这部分都会有很大变化,因此为了方便理解,基于Android9.0简单分析下CarAudio...

2019-11-07 23:36:06 2824

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除