
源码分析
文章平均质量分 85
系统源码和三方库源码解析
mChenys
这个作者很懒,什么都没留下…
展开
-
Android LruCache
当调用put()方法时,就会在集合中添加元素,并调用trimToSize()判断缓存是否已满,如果满了就用LinkedHashMap的迭代器删除队首元素,即近期最少访问的元素。当调用LruCache的get()方法获取集合中的缓存对象时,就代表访问了一次该元素,将会更新队列,保持整个队列是按照访问顺序排序。有以上结果可以看出,这个设置为true时,如果对一个元素进行了操作(put,get),就会把那个元素放到集合的最后,设置为false时,无论怎么操作,集合元素的顺序都是按照插入的顺序来进行存储的。原创 2022-09-23 20:55:06 · 2054 阅读 · 0 评论 -
事件分发机制的原理总结
触摸事件相关方法:ViewGroup•dispatchTouchEvent(MotionEvent) 用于分发touch事件•onInterceptTouchEvent(MotionEvent) 用于是否中断touch事件,true中断,false不中断,默认false•onTouchEvent(MotionEvent) ...原创 2015-12-06 11:47:22 · 1604 阅读 · 0 评论 -
Handler Looper Message的源码分析
Handler通常我们创建Handler都是使用其无参数的构造方法 /** * Constructor associates this handler with the {@link Looper} for the * current thread and takes a callback interface in which you can handle * m...原创 2018-12-26 14:43:40 · 218 阅读 · 0 评论 -
LiveData的工作原理分析
文章目录一、简介二、数据监听源码分析2.1 LiveData的observer方法分析2.2 LifecycleBoundObserver源码分析2.3 ObserverWrapper源码分析2.4 LifecycleEventObserver接口分析三、数据发送源码分析3.1 LiveData的postValue/setValue方法分析3.2 LiveData的dispatchingValue方法分析3.3 LiveData的considerNotify方法分析四、LiveData的粘性事件4.1 何为原创 2021-06-20 21:26:34 · 674 阅读 · 1 评论 -
从源码角度分析事件分发流程
事件分发流程分为View的事件分发和ViewGroup的事件分发, 首先来看看View的事件分发流程,也就是View#dispatchTouchEvent到底做了什么。View的事件分发public boolean dispatchTouchEvent(MotionEvent event) { ... //默认不消费 boolean result = false; ...原创 2020-03-17 12:06:18 · 346 阅读 · 0 评论 -
从源码分析View的measure过程
measure过程要分情况来看,如果只是一个原始的View,那么通过measure方法就完成了其测量过程,如果是一个ViewGroup,除了需要完成自己的测量外,还会遍历去掉用所有子元素的measure方法,各个子元素再递归去执行这个流程. 我们先从ViewGroup下手,它是一个抽象类,因此它没有重写View的onMeasure方法,其具体的测量过程需要各个子类去实现,比如LinearLayou原创 2016-08-27 16:56:08 · 1074 阅读 · 0 评论