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