网络上关于Android机制的文章已经有很多了,自己之前也看了不少,但是没有正真非常系统地去阅读源码。这几天抽空翻了翻源码,做了整理。
先上类图,以下类图并没有将实际源码中所有的关系体现出来,而只是将其中自己认为相对重要的体现出来,所以不同的人有不同的理解画出来的类图很可能不一样
主要涉及四个类
1. Handler:负责消息的接收及分发处理
2. Looper:里面好几个静态方法,辅助Handler进行消息循环
3. MessageQueue:消息队列,负责消息存取的实际对象
4. Message:消息载体,是一个单链表结构,其实它还拥有Handler的引用
接下来是时序图,体现了Android消息机制的建立与工作过程
- 消息机制的建立
- 消息循环机制
- 消息的分发
[
Android系统的运行也依赖这个消息机制。它在ActivityThread 的main方法中开启,在主线程中运行拥有自己独立的Handler,不允许用户主动退出。