![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
文章平均质量分 85
TechMerger
Android平台资深从业者,公众号「Tech Merger」。
展开
-
面试题:手指从按钮 A 平移到 B,会发生什么?为什么?
Touch 相关问题是 Android 面试中常问的点,不一定要求大家都从 InputFlinger 底层开始回答,但起码需要了解 Touch 抵达 App 之后的完整处理。而即便是这段偏上层的链路,也不要局限在老生常谈的过程复述,需要深刻理解、灵活运用其中的细节和原则。本文结合一个简单的 Touch 场景的问答,带大家加深一下 Touch 分发的理解。Button A 和 B 相邻,手指不抬起、从 A 平移到 B,A 会发生什么?为什么?此刻,B 又会发生什么?为什么?原创 2023-09-18 07:45:00 · 142 阅读 · 0 评论 -
全方位探究似懂非懂的 CAS 机制~
求学、面试的时候会无法回避CAS话题,但对于其原理,总有种似懂非懂的感觉。CAS 机制全称:,即比较并替换,。也有叫做的,即比较并设置。比较:读取到了一个值 A,在将其更新为 B 之前,检查原值是否仍为 A替换 / 设置:YES 则将 A 更新为 B,结束;反之,重复上述操作直到成功为止这种机制在确保原子化操作、实现乐观锁的同时也无法避免一些缺陷,咱们从源码入手分析一下其原理、乐观锁和缺陷等各个细节。通过静态方法获得Unsafe实例接着通过 Unsafe 实例的 native 方法传入使用。原创 2023-03-12 12:13:55 · 295 阅读 · 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 评论 -
面试题:Android 中 Intent 采用了什么设计模式?
答案是采用了原型模式。原型模式的好处在于方便地拷贝某个实例的属性进行使用、又不会对原实例造成影响,其逻辑在于对。逻辑是直接调用了 new 并传入了自身实例,而非调用 super.clone() 进行拷贝。原型模式也不一定非得实现 Cloneable,提供了类似的实现即可。,顾名思义,将完整拷贝源实例的所有属性进行构造。,Android 源码中还有很多地方采用了原型模式。相关的属性,即用来判断启动目标组件的。没有实现该接口但提供了。原创 2023-02-25 19:53:56 · 832 阅读 · 0 评论