![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
一切从Android的Handler讲起
文章平均质量分 90
快乐肥柴
致力于做一只快乐肥柴
展开
-
一切从Android的Handler讲起(一):Handler工作机制
一切从Android的Handler讲起(一):Handler工作机制 有关Handler原理的相关博文或者书本有很多,包括肥柴本人也写过相关的博文,包括基础原理篇:Android基础知识(九):Handler机制的原理分析、基础使用方式篇:Android基础知识(十):Handler的使用方式与注意事项以及原理探究篇:Android进阶知识(二十二):Android的消息机制。 之所以单独开一个篇章来讲讲Handler,原因是肥柴在重看Handler的时候发现如果从Handler出发,可以牵扯的原创 2022-04-17 17:08:13 · 1256 阅读 · 0 评论 -
一切从Android的Handler讲起(二):Message
一切从Android的Handler讲起(二):Message 在起始篇:一切从Android的Handler讲起(一):Handler工作机制中,我们知道Looper会从MessageQueue中取出Message并提交给对应的Handler来处理,那么问题来了Looper取出来的Message怎么知道给哪个Handler呢? 要想解决这个问题,我们需要从源码入手,在使用Handler发送Message的时候,有两种方式: 1、send方式 2、post方式 肥柴决定先从最普遍的se原创 2022-04-17 22:03:26 · 1354 阅读 · 0 评论 -
一切从Android的Handler讲起(三):Looper的唯一性——ThreadLocal
一切从Android的Handler讲起(三):Looper的唯一性——ThreadLocal 肥柴在起始篇:一切从Android的Handler讲起(一):Handler工作机制中提及到,一个Looper对应一个线程,也就是说,Looper在线程上具备唯一性。 那么问题来了,Handler底层是如何来实现Looper的唯一性的呢? 肥柴决定从Looper的源码入手,我们知道一个线程的Looper的创建是调用Looper的prepare方法,那我们就从这里开始下手。 /** Loope原创 2022-04-18 21:52:12 · 3490 阅读 · 0 评论 -
一切从Android的Handler讲起(四):Looper消息获取
一切从Android的Handler讲起(四):Looper消息获取 上一篇肥柴分析了Looper的线程唯一性原理,这一篇章,肥柴将从Looper的源码入手,对Looper获取分发消息原理的进一步解析,来解答以下三个问题: 1、Looper如何不断的获取Message并处理? 2、在UI线程里,系统预先为我们创建了一个Looper,那么UI线程里的Looper这个死循环岂不是占用了所有CPU资源,那为何不会出现ANR? 3、当MessageQueue在检查到没有Message时进入了休眠,那原创 2022-04-23 13:40:08 · 2101 阅读 · 0 评论 -
一切从Android的Handler讲起(五):延迟消息实现原理与消息机制的基本原理
一切从Android的Handler讲起(五):延迟消息实现原理与消息机制的基本原理 在一切从Android的Handler讲起(四):Looper消息获取中,肥柴的分析都是基于及时消息,那对于诸如postDelay的延迟消息,Handler中又是如何实现其延迟出发的呢?一、延迟消息实现原理 我们重新来回顾一下MessageQueue内的获取消息的next()方法的源码。 /** MessageQueue.class */ @UnsupportedAppUsage Mes原创 2022-04-23 15:12:49 · 6585 阅读 · 0 评论 -
一切从Android的Handler讲起(六):Android触摸事件基本原理
一切从Android的Handler讲起(六):Android触摸事件基本原理 前面的篇章,肥柴已经分析了Handler的消息处理机制,那既然有消息处理,就有消息的来源和分发。 从手指接触屏幕到MotionEvent被传送到Activity或者View,中间究竟经历了什么?Android中触摸事件到底是怎么来的呢?源头是哪呢? 本篇肥柴就简单的总结一下Android触摸事件的基本原理,只作为了解。一、Android触摸事件模型 触摸事件肯定要先捕获才能传给窗口,因此: 1、首先应该有原创 2022-05-06 15:03:38 · 1261 阅读 · 0 评论 -
一切从Android的Handler讲起(七):Handler在Android系统框架层的应用
一切从Android的Handler讲起(七):Handler在Android系统框架层的应用 前面的篇章,肥柴已经分析了Handler的消息处理机制,以及Android触摸事件原理——消息的来与与分发。那么既然有这套消息机制,Android官方必然有运用它的地方。 反应过来的读者已经知道肥柴要说啥了,没错,就是四大组件的生命周期。四大组件的生命周期就是遵循了事件驱动模型,它们均是由Android系统框架层产生相应的Message发送到UI的MessageQueue中触发的。 那么既然遵循事件原创 2022-05-07 13:52:17 · 2720 阅读 · 0 评论 -
一切从Android的Handler讲起(八):Handler的内存泄露
一切从Android的Handler讲起(八):Handler的内存泄露 前面肥柴从浅入深,以Handler的基本工作机制为导入,进一步解析Handler机制的内部底层原理、Android触摸事件原理以及Android Framework层对消息机制的应用。这一篇章作为Handler的最后一个篇章,我们依旧从Handler入手,来谈谈内存泄漏的那些事。一、内存泄露 内存泄漏是一个老生常谈的问题,也是面试容易问到的问题,那到底什么是内存泄漏呢? 内存泄漏是指动态开辟的空间,在使用完毕后未释放,结原创 2022-05-07 15:45:20 · 2141 阅读 · 0 评论