自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 Handler 消息机制流程图(四)

一、大体流程 二、epoll 流程 三、MessageQueue.next如何阻塞 enqueueMessage唤醒

2021-02-07 04:27:06 653

原创 Handler 消息机制源码分析(三)

一、非主线程中使用Handler 先官方一段话 Looper.prepare:会创建一个looper 一个MessageQueue 一个NatvieMessage 一个 fd文件描述符 Looper.loop:开启自己的循环读取消息 二、Looper中的IO复用 一个 MessageQueue 对应一个mPtr 1.我们Android中可以创建多个MessageQueue 所需需要用IO复用 Looper中的 MessageQueue N个Handler 发送Message(阻塞在 IO复用中)同一个文件

2021-02-06 02:56:51 194 1

原创 Handler 消息机制源码分析(二)epoll IO复用

一、MessageQueue 构造方法 1.android_os_MessageQueue.cpp 中初始化 android_os_MessageQueue_nativeInit(void) MessageNative 的初始化 以及返回mptr 初始化做了什么 创建NatvieMessage 创建Looper对象 (根据当前线程 有点像ThreadLocal) 返回mPtr 指针 指向的就是这个NativeMessage对象 2.Looper初始化做了什么 这个 Looper 构造方法 做了

2021-02-06 02:46:14 255

原创 Handler 消息机制源码分析(一)

学习Handler 需要掌握ThreadLocal、Linux内核的IO复用 epoll 配合源码一起看更好 一、ActivityThread main方法 Looper初始化 1.Looper.prepareMainLooper 2.Looper.loop方法 loop 方法非常重要 他主要2件事 从MessageQueue.next 读取消息对象 调用Message.target.dispatchMessage 就是handler的dispatchMessage 二、Handler如何存入消

2021-02-06 02:19:10 171 1

原创 LiveData 源码分析(一)

使用不介绍 一、postValue 如何执行到主线程中 1.LiveData - postValue ArchTaskExecutor 执行一个Runnable 对象 Runnable 对象中调用 了setValue 方法 (主要是 在哪去执行了切换线程) 2.ArchTaskEexcutor - postToMainThread方法 mDelegate 是 DefaultTaskExecutor 这里为什么做了多重封装?暂时还不知道 ArchTaskExecutor中其他方法的使用地方 Defau

2021-02-01 04:22:58 158

原创 Android 事件分析(二)

一、Down事件 流程图

2021-01-29 20:11:28 102

原创 Android-UI绘制分析02

View measure

2017-08-25 10:24:51 216

原创 Android-UI绘制分析01

Activity Window PhoneWindow DecorView 之前的关系 问题一:requestFeature为什么要在setContentView之前 问题二:他们之间的关系

2017-08-02 14:58:28 301

原创 Android事件(一)

1.dispatchTouchEvent 返回结果true或者false --ViewGroup:当一个Touch事件(触摸事件为例)到达根节点,即Acitivty的ViewGroup时,它会依次下发,下发的过程是调用子View(ViewGroup)的dispatchTouchEvent方法实现的。简单来说,就是ViewGroup遍历它包含着的子View,调用每个View的dispatchTou

2016-08-15 11:33:21 513

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除