![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码解读
文章平均质量分 96
TechMerger
Android平台资深从业者,公众号「Tech Merger」。
展开
-
通过无障碍控制 Compose 界面滚动的实战和原理剖析
针对 Compose UI 工具包,开发者不仅需要掌握如何使用新的 UI 组件达到 design 需求,更需要了解和实现与 UI 的交互逻辑。比如 touch 事件、Accessibility 事件等等。Compose 中对 touch 事件的处理和原理,笔者已经在《通过调用栈快速探究 Compose 中 touch 事件的处理原理》里进行了阐述Compose 中对 Accessibility 事件的支持和基本原理,笔者已经在。原创 2024-06-08 10:52:47 · 651 阅读 · 1 评论 -
一文读懂 Compose 支持 Accessibility 无障碍的原理
众所周知,Compose作为一种 UI 工具包,向开发者提供了实现 UI 的基本功能。但其实它还默默提供了很多其他能力,其中之一便是今天需要讨论的:Android 特色的功能。采用 Compose 搭建的界面,完美地支持了 Accessibility 功能:它的 UI 变化能正确地发出无障碍事件并响应来自无障碍服务的操作。那 Compose 是如何做到完美兼容传统的 Accessibility 机制的,本文将按照无障碍事件、无障碍节点、无障碍操作等几个方向为你剖析 Compose 默默做了哪些事情。原创 2024-06-08 10:49:07 · 537 阅读 · 0 评论 -
通过调用栈快速探究 Compose 中 touch 事件的处理原理
Compose 视图的处理方式和 Android 传统 View 有很大差别,针对 touch 事件的处理自然也截然不同。。本文将以 Compose 中几种最典型的 touch 处理为例,分别介绍其使用场景,并打印其调用栈。最后结合栈和 touch 源码,一起综合分析 Compose 中处理 touch 的原理细节。最后,我们将 Compose 中几种典型的 touch 处理的 process 综合到一张图里,供大家直观地了解互相之间的关系。和物理的 Touch 事件一样,经由抵达。原创 2024-06-08 10:45:43 · 794 阅读 · 0 评论 -
从车窗升降一探 Android 车机的重要 API:车辆属性 CarProperty
一文了解 Android 车机如何处理中控的旋钮输入从实体按键看 Android 车机的自定义事件机制深度入门 Android 车机核心 CarService 的构成和链路本篇文章我们聚焦 Android 车机上最重要、最常用的接口:即车辆属性。并结合车窗升降这种典型的场景来探究它的完整链路。App 先通过 Car lib 拿到CarService的Car实例,CarService 会初始化所有 Car 相关的实现,比如其中车辆属性的化,会初始化和等。原创 2023-10-22 17:25:08 · 1512 阅读 · 0 评论 -
面试题:手指从按钮 A 平移到 B,会发生什么?为什么?
Touch 相关问题是 Android 面试中常问的点,不一定要求大家都从 InputFlinger 底层开始回答,但起码需要了解 Touch 抵达 App 之后的完整处理。而即便是这段偏上层的链路,也不要局限在老生常谈的过程复述,需要深刻理解、灵活运用其中的细节和原则。本文结合一个简单的 Touch 场景的问答,带大家加深一下 Touch 分发的理解。Button A 和 B 相邻,手指不抬起、从 A 平移到 B,A 会发生什么?为什么?此刻,B 又会发生什么?为什么?原创 2023-09-18 07:45:00 · 142 阅读 · 0 评论 -
万字解读 Android 车机核心 :CarService 的构成和链路~
关于 Android 车机,之前分析过方控上自定义按键的输入机制和中控上旋钮输入的原理,但都局限于 Car Service 内 Input 相关模块。一文了解 Android 车机如何处理中控的旋钮输入从实体按键看 Android 车载的自定义事件机制本文将结合 Android 系统整体,对 CarService 的构成和链路对其做一个全面的分析和理解。我们通过一张表格来总结 CarService 相关组件的构成。Car 相关组件所属进程作用管理 Car Serivce 的系统服务。原创 2023-09-04 08:27:43 · 1956 阅读 · 0 评论 -
Android 标准语音识别框架:SpeechRecognizer 的封装和调用
此前,笔者梳理了语音如何打造车载语音交互:Google Voice Interaction 给你答案:介绍的是 3rd Party App 如何通过API 快速调用系统的语音交互服务快速完成确认、选择的基础语音对话直面原理:5 张图彻底了解 Android TextToSpeech 机制:侧重于阐述 TTS Engine App 如何提供文字转语音服务,以及 3rd Party App 又如何便捷地调用这些服务。还缺最后一块即如何向系统提供语音识别的。原创 2023-08-21 10:00:00 · 2264 阅读 · 9 评论 -
直面原理:5 张图彻底了解 Android TextToSpeech 机制
关于语音方面的交互,Android SDK 提供了用于语音交互的机制、语音识别的接口、语音播报的 TTS 接口。前者已经介绍过,本次主要聊聊第 3 块即 TTS,后续会分析下第 2 块即 Android 标准的 Recognition 机制。通过机制,任意 App 都可以方便地采用系统内置或第三方提供的 TTS Engine 进行播放铃声提示、语音提示的请求,Engine 可以由系统选择默认的 provider 来执行操作,也可由 App 具体指定偏好的目标 Engine 来完成。原创 2023-02-12 21:10:20 · 1323 阅读 · 0 评论 -
一文了解 Java 中 so 文件的加载原理
无论是 Android 开发者还是 Java 工程师应该都有使用过 JNI 开发,但对于 JVM 如何加载 so、Android 系统如何加载 so,可能鲜有时间了解。本文通过代码、流程解释,带大家快速了解其加载原理,扫清困惑。总体流程可以归纳如下:System类提供的load()加载 so 的完整的路径名且带文件后缀,等同于直接调用Runtime类提供的 load();用于加载指定 so 的名称,等同于调用Runtime类提供的 loadLibrary()。两者都将通过。原创 2023-01-30 21:41:05 · 2088 阅读 · 0 评论 -
全方位探究似懂非懂的 CAS 机制~
求学、面试的时候会无法回避CAS话题,但对于其原理,总有种似懂非懂的感觉。CAS 机制全称:,即比较并替换,。也有叫做的,即比较并设置。比较:读取到了一个值 A,在将其更新为 B 之前,检查原值是否仍为 A替换 / 设置:YES 则将 A 更新为 B,结束;反之,重复上述操作直到成功为止这种机制在确保原子化操作、实现乐观锁的同时也无法避免一些缺陷,咱们从源码入手分析一下其原理、乐观锁和缺陷等各个细节。通过静态方法获得Unsafe实例接着通过 Unsafe 实例的 native 方法传入使用。原创 2023-03-12 12:13:55 · 295 阅读 · 0 评论