Read The Fucking Source Code
引言
- App 与 AMS 通信场景多,流程复杂。生命周期更新、页面配置更新等等……
- 如何统筹消息域,减少通信次数,减少两端耦合……
- ClientTransaction,它来了,序列化对象,汇总生命周期节点、组合所需更新列表……
- 如果对
App启动流程不太熟悉,请先看 【Android App启动流程】。 - 下面就用图说话吧!
源码版本(Android R — API 30)
1. APP-AMS 对应关系

2. 生命周期
ClientTransaction 生命周期的统筹

3. 总结图示
ClientTransaction 总结图示

4. 结构组成
ClientTransaction 结构组成

5. 流程分析
ClientTransaction 全流程分析

6. 举栗
举栗 : ClientTransaction 启动流程详细分析

7. 小结
- 减少通信次数:
AMS->APP,一次通信,包含各种通信事件和内容。 - 统筹消息域:将生命周期变化与事件更新分类统筹,分别处理。
- 减少两端耦合:
AMS对于生命周期的发送要求,与APP对生命周期的处理需求并不对等,所以APP会自己组装完整的生命周期回调,处理逻辑更内聚。举例:如果以后要在onStart()和onResume()中间添加一个onStartToResume()回调,那么只修改APP侧的逻辑即可,不需要修改AMS。
小编的扩展链接
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















![[02/27][官改] Simplicity@MIX2 ROM更新-一一网](https://www.proyy.com/wp-content/uploads/2020/02/3168457341.jpg)


![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)