
源码解析
文章平均质量分 78
AncelyF
这个作者很懒,什么都没留下…
展开
-
Android事件分发机制详解及解决文案:史上最全面、最易懂
点击屏幕Android事件是如何传递,先上图然后再源码解读源码解读当用户触摸屏幕首先由当前Activity来分发public class TouchEventActivity extends AppCompatActivity { private ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn原创 2021-11-02 16:48:25 · 1877 阅读 · 0 评论 -
从ReentrantLock的实现看AQS的原理
前言Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS简介AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架核心思想是,如果被请求的共享资源空闲,那么就将当前请求资源的线程设置为有效的工作线程,将共享资源设置为锁定状态;如果共享资源被占用,就需要一定的阻塞等待唤醒机制来保证锁分配。这个机制主要用的是CLH队列的变体实现的,将暂时获取不到锁的线程加原创 2021-10-29 15:29:22 · 188 阅读 · 0 评论 -
ThreadLocal原理详解——原来ThreadLocal是这和强大的存在
ThreadLocal定义为每一个线程提供变量的副本,实现了线程的隔离,也可以保证线程的安全性。和ThreadLocal相关类ThreadLocal内部类ThreadLocalMapThreadLocalMap.Entry ThreadLocalMap内部类Thread类ThreadLocal是一个带泛型的类public class ThreadLocal<T> {}源码分析Android中最典型用到ThreadLocal地方在Looper里public final原创 2021-10-20 09:24:29 · 775 阅读 · 0 评论 -
Retrofit2完全解析和与okhttp之间的关系
刨析Retrofit源码前先简单介绍以下几个和Method相关的方法Method method;//第一: 获取方法上所有的注解Annotation[] methodAnnotations = method.getAnnotations();//第二: 获取方法参数上的所有注解//为什么是二维数组: 因为一个参数会有多个注解, 一个方法可以有多个参数Annotation[][] parameterAnnotationsArray = method.getParameterAnnotations(原创 2021-10-15 00:32:35 · 375 阅读 · 0 评论