Skip to content
Able Blog
Home
Others
  • Home
      • 学习笔记
          • Android
            • 简历_赵思琦_Android_5年经验
                • Handler
                  • 01. handler整体架构方案原理
                    • 参考相关文章及视频
                      • Handler 解决应用内通信问题
                        • MessageQueue
                          • Binder 进程间通信 AIDL接口定义语言
                          • 02. Message源码分析
                            • 03. Looper源码分析
                              • 04. ThreadLocal的使用及源码解析文章
                                • 05. MessageQueue源码解析
                                  • 06. Handler源码解析
                                    • 07. 源码阅读总结
                                      • 08. Carson Handler总结的机制源码解析
                                        • 09. handler 内存泄漏的原因

                                    01. handler整体架构方案原理

                                    author iconAblecalendar icon2022年4月11日category icon
                                    • Android
                                    tag icon
                                    • Handler
                                    • 学习笔记
                                    word icon约 421 字

                                    此页内容
                                    • 参考相关文章及视频
                                    • Handler 解决应用内通信问题
                                    • MessageQueue
                                    • Binder 进程间通信 AIDL接口定义语言

                                    # 01. handler整体架构方案原理

                                    # 参考相关文章及视频

                                    • Android源码解析open in new window
                                    • handler视频open in new window
                                    • 深入理解MessageQueueopen in new window
                                    • Handler消息机制源码分析open in new window
                                    • 最好的* 全面解析 | Android之Handler机制open in new window
                                    • 源码深入分析,未看open in new window
                                    1、Handler负责发送Message和处理Mesage
                                    2、Message就是消息载体,可用what区分,也可传递对象
                                    3、Message Queue消息队列,存储Message,先进先出
                                    4、Looper循环取出Message Queue里的Message交给Handler处理。
                                    5、一个线程只有一个Looper和Message Queue,子线程中使用Handler一定要Looper.prepare()创建Looper,然后loop,主线程在应用启动时已经创建Looper。
                                    形容起来就是一个快递员(handle),取到信件(message)就交到快递分拣处(message queue),再由快递公司(looper)进行派件(事件的发送和处理)
                                    
                                    1
                                    2
                                    3
                                    4
                                    5
                                    6

                                    Handler和Binder基本覆盖了Applcation层和Framework层的通信

                                    # Handler 解决应用内通信问题

                                    • 四大组件生命周期

                                    • Touch事件分发

                                    进程内部通讯,以消息队列的形式驱动应用的运行

                                    关键方法调用流 sendMessageAtTime --> enqueueMessage(queue,msg,uptimeMillis)-->MessageQueue.enqueueMessage(msg,uptimeMillis)-->MessageQueue.next()-->Looper.loop()-->Handler.dispatchMessage(msg)-->Handler.handlerMessage(msg)-->handleMessage(msg)

                                    Looper.loop() 开启循环

                                    Message是一个单向链表,MessageQueue持有Message引用, Handler和Message内部互相持有引用

                                    # MessageQueue

                                    enqueueMessage(Message msg,long when) //逐行解析

                                    # Binder 进程间通信 AIDL接口定义语言

                                    • home与AMS,WMS,PMS的通信,底层服务之前的通信
                                    • 广播
                                    • 跨进程通讯,并且通过 ServiceManager 给上层应用提供了大量的服务
                                    edit icon编辑此页open in new window
                                    上次编辑于: 2022/4/17 23:10:35
                                    贡献者: zsqan
                                    上一页
                                    Handler
                                    下一页
                                    02. Message源码分析
                                    默认页脚
                                    Copyright © 2022 Able