本文主要是介绍Android Fk: Activty管理之token总结 基于Android 9.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Android Fk: Activty管理之token总结
- 一.Token概述
- 二.详细过程
- 2.1 AMS创建Token并传递至WMS中:
- 2.2 AMS传递Token至ActivityThread中:
- 2.3 App addWindow将token传递至WMS关联起Activty和Window:
本文的plantuml 源码及draw.io原图提供至百度云链接中,可自行下载修改
链接: https://pan.baidu.com/s/1XdpTxN-rOP4JNht_BzPSRQ 提取码: fsur
高效学习的博客:
Android Fk: Activity的管理AMS中的结构总结 基于Android 9.0: https://blog.csdn.net/TaylorPotter/article/details/88429261
深入理解WindowManagerService:https://blog.csdn.net/wf_fln/article/details/78593080
WindowManagerService的理解:https://blog.csdn.net/ztliduo/article/details/54425089
深入理解Activity——Token之旅:https://blog.csdn.net/guoqifa29/article/details/46819377
Android AMS(六) Activity与WMS的连接过程之AppWindowToken:https://blog.csdn.net/liu362732346/article/details/85336050
一.Token概述
- Token创建:第一次启动指定Activity时,AMS会去创建ActivityRecord记录该Activity信息,ActivityRecord构造函数里创建一个Token类型对象保存在ActivityRecord.appToken中;
- 传递至WMS:AMS在为启动Activity创建AppWindowContainerController的时候将ActivityRecord中的Token对象加入到WMS中的mTokenMap中
- 传递至ActivityThread:AMS binder调用到LaucherActivity的时将token 传到应用进程并封装成ActivityClientRecord保存在ActivityThread的mActivitys这个Arraymap中
- 添加窗口:应用进程在向WMS 添加窗口的时候会将windowtoken及token传入到WMS中,WMS根据token创建Windowstate对象用于管理窗口
总之windowtoken及appwindowtoken中的token成员变量及是AMS为activity创建的ActivityRecord中的Token对象,该Token对象在应用进程以ActivityClientRecord的形式保存代理,这样,就app,ams,wms就关联起来了指定的Activity,大家就都可以确定当前需要处理,显示等操作的Activity是哪一个。
二.详细过程
2.1 AMS创建Token并传递至WMS中:
2.2 AMS传递Token至ActivityThread中:
2.3 App addWindow将token传递至WMS关联起Activty和Window:
这篇关于Android Fk: Activty管理之token总结 基于Android 9.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!