- 博客(12)
- 收藏
- 关注
原创 音频基础知识集合
采样率(采样频率)即每秒内进行采样的次数。单位是Hz。采样率越高,数字波形的形状就越接近原始模拟波形,声音的还原就越真实。如44100HZ, 48000HZ等。
2024-07-31 11:15:07
490
原创 Android-添加分区
新增一个分区情况如下, 由于一个磁盘主分区最多只能4个,树莓派刚好用完,增加一个则需要将主分区换位扩展分区,在扩展分区创建逻辑分区。创建一个扩展分区p3,用于创建逻辑分区 (vendor test 三个逻辑分区分别为p5 p6), userdata 主分区 p3。原始树莓派分区 boot system vendor userdata, 全部是主分区。修改脚本后,启动分区 boot 依然使用主分区p1, system使用主分区p2。本文的目标是在Raspberry 4B上添加一个test分区。
2024-07-23 16:00:29
324
原创 Android音频子系统分析-音频流区分处理
这类需求如果在手机平台上实现,会比较复杂,修改的内容也会比较多。手机由于只有一个主扬声器,所以不管是什么类型的声音都从一个地方出来,也不需要这样处理。如果是在车机平台,Android已经考虑到这种情况,只需要修改配置及少量的代码就可以实现。
2024-07-19 17:44:16
313
原创 Android-Overlay机制
Android原生Framework和一些系统App大量的使用了资源文件,如配置config.xml,字符string.xml,布局layout.xml等。我们在定制Android时,往往需要定制其中的一些内容,但又不希望破坏原有的结构,这时候就可以使用Overlay机制。一般用于修改frameworks和packages目录。Overlay有两种方案,静态Overlay和动态Overlay。
2024-07-18 18:37:57
1378
原创 Android音频子系统分析-car_audio_configuration.xml
先附上一个例子,再逐一解释。概括来说,该文件描述了车里有哪些区域,每个区域划分了多少组,每个组包含了哪些设备,每个设备接收哪些类型的音频流。
2024-07-16 15:17:38
273
原创 Android音频子系统-耳机插拔
带着以下几个问题,我们着手分析:Android系统在播放音乐的时候,如果插入耳机,系统会发生什么变化?会产生哪些逻辑?音频是如何从扬声器切换到耳机的?插入3.5mm的耳机孔和usb耳机又有什么不同?
2024-07-10 14:33:20
986
原创 Android音频子系统分析-音量设置
调节音量大小,通常有两种方式:1. 通过硬件调节:放大电流。2. 通过软件调节:调整pcm振幅。这里主要说一下通过软件调节音量的流程,基于Android12。我们知道音频流是通过AudioFlinger处理并输出的,那软件调节的音量设置信息肯定需要传递到AudioFlinger中。Android中调节音量可以通过直接设置音量值的方式,也可以通过音量键进行逐步调节。
2024-07-08 11:15:26
706
转载 Android13音频子系统分析-整体架构
目录一、应用API层二、Java框架层三、Native核心层3.1 AudioFlinger模块3.2 AudioPolicyService模块四、HAL层 本文基于AOSP13源码进行分析解读。所以与各个SoC平台厂商提供的运行在真实设备上的源码会有细微差异,但核心原理区别不大。 音频子系统在Android中是一个较为复杂的子系统,横跨应用API层,框架层,Native层和HAL层。使用Java、C++、C语言进行编写。运行在Linux用户空间的
2024-06-26 18:13:05
228
转载 Android中native_handle private_handle_t ANativeWindowBuffer ANativeWindow GraphicBuffer Surface的关系
native_handle/native_handle_t只是定义了一个描述buffer的结构体原型,这个原型是和平台无关的,方便buffer在各个进程之间传递,注意成员data是一个大小为0的数组,这意味着data指向紧挨着numInts后面的一个地址.我们可以把native_handle_t看成是一个纯虚的基类.一般来说,我们描述一块buffer,需要知道它在kernel中对应的fd,虚拟地址/物理地址,offset,size等等信息,后面我们在private_handle_t中就可以看到这些字段.
2024-06-26 18:03:20
37
原创 Android Notification - 灯光提示
先给出问题:Android从O升级到P之后,未接来电无呼吸灯闪烁提示了。处理未接来电的逻辑在platform/package/service/Telecomm里面,有未接来电时,会向系统发送通知,具体代码位置:Telecomm/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java private void s...
2020-04-15 11:24:21
1052
原创 Android 之 AppWidget
之前在项目上碰到了一个问题:刚开机的时候点击主屏幕的全局搜索框没反应,需要等几十秒之后才会正常反应。刚开始猜测是在等待什么初始化条件,但从应用栏里启动全局搜索却很快,因此可以排除这种情况,于是打算从源码层去看看。在launcher里并未找到这个全局搜索的相关代码,因此怀疑这是一个AppWidget,在android代码中全局搜索“android.appwidget.action.AP...
2019-07-25 15:51:20
403
Android 录屏,录音,并通过MediaCodec编码后保存到文件,含全部源码
2024-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人