- 博客(20)
- 收藏
- 关注

原创 高通音频架构(二)
1.2 HAL(硬件抽象层)在上一篇文章中,我们探讨了audio在framework层的一些代码流程,记下来看看HAL层。在大部分驱动中,HAL层扮演的是一个过度的角色,基本上都是用于传递数据,不会做太多的逻辑处理,主要核心部分都交给了kernel,但似乎对于音频来说,刚好反过来了,音频的kernel放的是平台对于音频的一些共同的和硬件交互的代码,大部分音频厂家都不会把自己的核心部分添加到kernel中,而是选择了放在HAL层。所以,对于音频来说HAL层反而成了整个框架中的核心部分,那么接下来我们就简单
2022-04-11 15:58:28
7425

原创 高通音频架构(一)
一、概述音频是几乎是任何一个机器都是必备的一项功能,从早起的单纯发声的录音机,到后来的MP3,以及到现在的手机,它一直陪伴在我们的生活中,功能不变,形式却一直在变,包括它的架构也在变化。从早期的OSS到现在的ALSA,这个介绍在上篇文档是有介绍的,这里我们就着重说一下ALSA。首先高通的音频结构分为以下几个部分:应用层,主要使用音频的用户主体架构层(framework),这一层主要是为应用层提供了相关处理接口,并且链接了HAL层硬件抽象(HAL)层,在音频开发中可能大部分主要逻辑都是放在这个层次来
2022-04-08 10:13:59
14887

原创 Android 音频(Audio)架构
一、概述Android 的音频硬件抽象层 (HAL) 可将 android.media 中特定于音频的较高级别的框架 API 连接到底层音频驱动程序和硬件。本部分介绍了有关提升性能的实现说明和提示。Android 音频架构定义了音频功能的实现方式,并指出实现中所涉及的相关源代码。应用框架应用框架包含应用代码,该代码使用 android.media API 与音频硬件进行交互。在内部,此代码会调用相应的 JNI 粘合类来访问与音频硬件互动的原生代码。源代码目录:frameworks/base/m
2022-04-08 09:47:34
18418
原创 CtsAppSecurityHostTestCases #ListeningPortsTest定位进程ID
本文主要介绍如何定位此EDLA 中fail case的问题所在。
2024-08-02 10:04:41
799
原创 Android 启动时应用的安装解析过程《一》
应用对于Android系统来说至关重要,系统会有几个时机对APP进行解析,一个是APK安装的时候会进行解析,还有一个就是系统在重启之后会进行解析,这里就简单的记录一下重启的时候APK的解析过程。
2024-07-25 19:20:35
1104
1
原创 COM通信栈
CAN SM 使用 CANIf的 API的模块中的 AUTOSAR CAN CAN 的流请求的抽象。它根据 ComM 模块的请求改变 CAN 模式 模块,CAN 控制器或 CAN 收发器模式的任何变化都将通过 CANIf 通知 CanSM。根据 CAN 网络状态机的通知和状态,CanSM 模块应为每个配置的 CAN 网络实现,CanSM 模块通知 ComM。PDUR通过来 是否通过使用该模块,如果PDU适合不同的CAN帧则直接指向下一个模块而不是CanTp模块,然后CAN帧模块可以Tp如果到那个较低的层。
2022-12-09 15:13:28
1863
1
原创 AUTOSAR OTA升级
随着高级辅助驾驶的发展和自动驾驶的引入,汽车变得越来越智能,这些智能汽车被软件控制,装有巨量的软件程序,当出现一个软件程序问题或者更新时,如果 按照传统的解决方式 ,那都将是一项很繁重的任务。以某车上市后出现的刹车逻辑问题为例,按照传统的解决方案,那么所有该车辆先将被召回,然后派人更新软件。这样,一方面影响用户体验和满意度,另一方面又要耗费大量的人力物力来修复问题。为了解决传统方式的痛点,使得软件更新更迅速,一种远程升级软件的技术OTA被引入到汽车行业。
2022-12-09 14:56:01
5066
原创 蓝牙usecase通路切换(framework层)
来修改,可见这个函数在这一过程中也是扮演很重要的角色,至于它主要做了什么可能还要等后续做深入分析,目前蓝牙控制音频usecase的地方就这些,请待后续更新。,可见apm在音频中扮演的角色应该是控制流的总负责,大部分控制流都要经过它。以上代码是蓝牙设备通过A2DP连接之后触发音频这边的激活的过程,蓝牙断开的过程类似,最后他们都会到类。,这个服务主要承载着应用层的操作,其中蓝牙的操作也是经由这个类,首先来看下它的初始化,上面两个函数其实使用的方法都差不多达到相反的目的,其最后的处理都是交由给。
2022-12-09 14:14:02
1414
原创 Recovery 模式
什么是Android的Recovery?android系统不同的启动模式的进入是在不同的情形下触发,除了组合按键能进入之外还有其他方式,比如系统崩溃(persist属性软件多次异常),或者命令行输入指令都能进入。下图是系统进入recovery的流程图:如上图,所描绘的分别是三条进入recovery模式的路径:此情形有两种方式触发:adb reboot recovery 和Powermanager.reboot(…,“recovery”,…)先看通过Powermanager方式进入recovery,pow
2022-12-08 09:56:56
10991
1
原创 高通音频架构(三)
音频由于其特殊的工作,使得它的结构特别的复杂,而且在自己的结构基础上还引入了ALSA架构,不过在android系统上所引入的并非完整的ALSA架构而是精简版的tinyalsa,但是就算精简版也是内容相当丰厚。除此,音频还拥有自己的单独的处理器ADSP以及独立的电源管理系统DAPM(便携式动态音频电源管理),使得音频在任何时候都是以最低功耗运行,降低了便携设备的功耗。在某些播放场景甚至不需要CPU的介入,比如接打电话的通过音频,如果手机处于休眠可以不需要唤醒CPU直接传递语音数据。...
2022-08-09 15:01:44
24534
11
原创 高通平台fingerprint指纹框架
指纹是android系统中目前应用比较广发的一种安全验证手段,它使得我们的手机安全得到了极大的提高,同时指纹它也拥有了极高权限,这就意味着,对于指纹这个软件需要一个绝对安全的运行环境,让外界很难突破去破解它。在高通平台中,手机内是分为安全环境和非安全环境的,安全环境是trustzone,简称TZ,这这里面运行的应用程序被称为qsapp,是需要经过签名验证通过才能运行,除TZ意外的地方被称为非安全环境,如下图:trustzone由两部分软件组成:TZBSP(TrustZone board support pa
2022-06-21 15:06:11
9638
2
原创 MTK Sensor框架 及信息传递详解
一、概述sensor(传感器)作为手机中一个非常重要且目前来说不可或缺的一种组件,功能强大,但是使用却很简单。Android 传感器属于虚拟设备,可提供来自以下各种物理传感器的数据:加速度计、陀螺仪、磁力计、气压计、湿度传感器、压力传感器、光传感器、近程传感器和心率传感器。因为对于日常生活来说有一部分sensor是使用频率是很高的,所以必然也伴随着手机功耗的增加如果每次都是CPU进行处理的化,而且CPU一旦休眠还伴随着sensor会停止工作,为了优化手机使用Google和MTK分别开发了CHRE 和SCP
2021-10-15 16:47:36
12970
2
原创 VerticalTabLayout 的一些用法
VerticalTabLayout 是一种纵向的TabLayout,为了满足各种需求被某作者开发出来,怎么开发的暂且不讨论了,先讨论拿来使用,在Android studio gradle文件中添加compile 'q.rorbin:VerticalTabLayout:1.2.5'VerticalTabLayout 不是继承与Tablayout,而是继承于NestedScrollView,而Nest...
2018-06-20 18:10:20
7607
2
原创 浅谈蓝牙4.0 Ble开发
蓝牙4.0是2012年最新蓝牙版本,是3.0的升级版本;较3.0版本更省电、成本低、3毫秒低延迟、超长有效连接距离、AES-128加密等;通常用在蓝牙耳机、蓝牙音箱等设备上。蓝牙技术联盟(Bluetooth SIG)2010年7月7日宣布,正式采纳蓝牙4.0核心规范(Bluetooth Core Specification Version 4.0 ),并启动对应的认证计划。会员厂商可以提交其产品进...
2018-06-16 13:12:04
1333
1
原创 android 开机启动一个流量提示的dialog
原理很简单,监听系统启动时候的广播:android.intent.action.BOOT_COMPLETED监听该广播时需要添加权限: 广播注册,一定要加category否则无法监测到:android:name=".DataConnectTipReceiver">然后是设置dialog,其他东西就不详细展示,展示核心代码:alertDia
2015-12-22 09:11:16
1405
原创 Android 自制的一个简单的心电图pulseview
一个自己参考制作出来的心电图,原理很简单,先上图上面部分是一个view用于显示局部心电图,下面是一个类似进度条的view用于显示全部心电图,当下面的黄色正方形被拖动,上面则会显示正方形所包含区域的局部心电图,起到一个预览的作用。原理:现将所有数据传入下面的view画出来,再通过监测其ontouch事件,通过正方形的边长计算出其中包含的数据点,并将其取出传入上面的view进行绘图,下
2015-12-10 10:42:50
11007
27
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人