Android Fk: Activty管理之token总结 基于Android 9.0

2024-03-19 09:58

本文主要是介绍Android Fk: Activty管理之token总结 基于Android 9.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文的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概述

在这里插入图片描述

  1. Token创建:第一次启动指定Activity时,AMS会去创建ActivityRecord记录该Activity信息,ActivityRecord构造函数里创建一个Token类型对象保存在ActivityRecord.appToken中;
  2. 传递至WMS:AMS在为启动Activity创建AppWindowContainerController的时候将ActivityRecord中的Token对象加入到WMS中的mTokenMap中
  3. 传递至ActivityThread:AMS binder调用到LaucherActivity的时将token 传到应用进程并封装成ActivityClientRecord保存在ActivityThread的mActivitys这个Arraymap中
  4. 添加窗口:应用进程在向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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/825597

相关文章

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式