自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 高通音频架构(二)

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

2022-04-11 15:58:28 7020

原创 高通音频架构(一)

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

2022-04-08 10:13:59 14124

原创 Android 音频(Audio)架构

一、概述Android 的音频硬件抽象层 (HAL) 可将 android.media 中特定于音频的较高级别的框架 API 连接到底层音频驱动程序和硬件。本部分介绍了有关提升性能的实现说明和提示。Android 音频架构定义了音频功能的实现方式,并指出实现中所涉及的相关源代码。应用框架应用框架包含应用代码,该代码使用 android.media API 与音频硬件进行交互。在内部,此代码会调用相应的 JNI 粘合类来访问与音频硬件互动的原生代码。源代码目录:frameworks/base/m

2022-04-08 09:47:34 17926

原创 CtsAppSecurityHostTestCases #ListeningPortsTest定位进程ID

本文主要介绍如何定位此EDLA 中fail case的问题所在。

2024-08-02 10:04:41 648

原创 Android 启动时应用的安装解析过程《一》

应用对于Android系统来说至关重要,系统会有几个时机对APP进行解析,一个是APK安装的时候会进行解析,还有一个就是系统在重启之后会进行解析,这里就简单的记录一下重启的时候APK的解析过程。

2024-07-25 19:20:35 1013

原创 使用外接usb摄像头预览时拔出摄像头再插上相机ID会后移

介绍了一下外接相机预览拔出为什么再次插入后ID会产生后移,并且如何解决

2024-07-25 10:30:51 973

原创 Android 大屏外接显示器锁屏无触摸

本文讨论的是一个无触摸bug的分析过程

2024-07-18 11:06:54 842

原创 NFC启动及标签发现流程介绍

本文主要介绍了NFC的启动流畅,和NFC发现标签时的流程,简单介绍希望能对一些学习者有点帮助

2024-03-22 16:28:02 1102

原创 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 1728 1

原创 AUTOSAR OTA升级

随着高级辅助驾驶的发展和自动驾驶的引入,汽车变得越来越智能,这些智能汽车被软件控制,装有巨量的软件程序,当出现一个软件程序问题或者更新时,如果 按照传统的解决方式 ,那都将是一项很繁重的任务。以某车上市后出现的刹车逻辑问题为例,按照传统的解决方案,那么所有该车辆先将被召回,然后派人更新软件。这样,一方面影响用户体验和满意度,另一方面又要耗费大量的人力物力来修复问题。为了解决传统方式的痛点,使得软件更新更迅速,一种远程升级软件的技术OTA被引入到汽车行业。

2022-12-09 14:56:01 4406

原创 蓝牙usecase通路切换(framework层)

来修改,可见这个函数在这一过程中也是扮演很重要的角色,至于它主要做了什么可能还要等后续做深入分析,目前蓝牙控制音频usecase的地方就这些,请待后续更新。,可见apm在音频中扮演的角色应该是控制流的总负责,大部分控制流都要经过它。以上代码是蓝牙设备通过A2DP连接之后触发音频这边的激活的过程,蓝牙断开的过程类似,最后他们都会到类。,这个服务主要承载着应用层的操作,其中蓝牙的操作也是经由这个类,首先来看下它的初始化,上面两个函数其实使用的方法都差不多达到相反的目的,其最后的处理都是交由给。

2022-12-09 14:14:02 1277

原创 Recovery 模式

什么是Android的Recovery?android系统不同的启动模式的进入是在不同的情形下触发,除了组合按键能进入之外还有其他方式,比如系统崩溃(persist属性软件多次异常),或者命令行输入指令都能进入。下图是系统进入recovery的流程图:如上图,所描绘的分别是三条进入recovery模式的路径:此情形有两种方式触发:adb reboot recovery 和Powermanager.reboot(…,“recovery”,…)先看通过Powermanager方式进入recovery,pow

2022-12-08 09:56:56 9143

原创 高通音频架构(三)

音频由于其特殊的工作,使得它的结构特别的复杂,而且在自己的结构基础上还引入了ALSA架构,不过在android系统上所引入的并非完整的ALSA架构而是精简版的tinyalsa,但是就算精简版也是内容相当丰厚。除此,音频还拥有自己的单独的处理器ADSP以及独立的电源管理系统DAPM(便携式动态音频电源管理),使得音频在任何时候都是以最低功耗运行,降低了便携设备的功耗。在某些播放场景甚至不需要CPU的介入,比如接打电话的通过音频,如果手机处于休眠可以不需要唤醒CPU直接传递语音数据。...

2022-08-09 15:01:44 22244 10

原创 高通平台fingerprint指纹框架

指纹是android系统中目前应用比较广发的一种安全验证手段,它使得我们的手机安全得到了极大的提高,同时指纹它也拥有了极高权限,这就意味着,对于指纹这个软件需要一个绝对安全的运行环境,让外界很难突破去破解它。在高通平台中,手机内是分为安全环境和非安全环境的,安全环境是trustzone,简称TZ,这这里面运行的应用程序被称为qsapp,是需要经过签名验证通过才能运行,除TZ意外的地方被称为非安全环境,如下图:trustzone由两部分软件组成:TZBSP(TrustZone board support pa

2022-06-21 15:06:11 8979 1

原创 MTK Sensor框架 及信息传递详解

一、概述sensor(传感器)作为手机中一个非常重要且目前来说不可或缺的一种组件,功能强大,但是使用却很简单。Android 传感器属于虚拟设备,可提供来自以下各种物理传感器的数据:加速度计、陀螺仪、磁力计、气压计、湿度传感器、压力传感器、光传感器、近程传感器和心率传感器。因为对于日常生活来说有一部分sensor是使用频率是很高的,所以必然也伴随着手机功耗的增加如果每次都是CPU进行处理的化,而且CPU一旦休眠还伴随着sensor会停止工作,为了优化手机使用Google和MTK分别开发了CHRE 和SCP

2021-10-15 16:47:36 12160 2

原创 VerticalTabLayout 的一些用法

VerticalTabLayout 是一种纵向的TabLayout,为了满足各种需求被某作者开发出来,怎么开发的暂且不讨论了,先讨论拿来使用,在Android studio gradle文件中添加compile 'q.rorbin:VerticalTabLayout:1.2.5'VerticalTabLayout 不是继承与Tablayout,而是继承于NestedScrollView,而Nest...

2018-06-20 18:10:20 7528 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 1299 1

原创 android 开机启动一个流量提示的dialog

原理很简单,监听系统启动时候的广播:android.intent.action.BOOT_COMPLETED监听该广播时需要添加权限: 广播注册,一定要加category否则无法监测到:android:name=".DataConnectTipReceiver">然后是设置dialog,其他东西就不详细展示,展示核心代码:alertDia

2015-12-22 09:11:16 1378

原创 Android 自制的一个简单的心电图pulseview

一个自己参考制作出来的心电图,原理很简单,先上图上面部分是一个view用于显示局部心电图,下面是一个类似进度条的view用于显示全部心电图,当下面的黄色正方形被拖动,上面则会显示正方形所包含区域的局部心电图,起到一个预览的作用。原理:现将所有数据传入下面的view画出来,再通过监测其ontouch事件,通过正方形的边长计算出其中包含的数据点,并将其取出传入上面的view进行绘图,下

2015-12-10 10:42:50 10918 6

空空如也

空空如也

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

TA关注的人

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