栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Activity相关类及startActivity流程总结----基于Android Q

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Activity相关类及startActivity流程总结----基于Android Q

1.Activity相关类介绍

(1)ActivityRecord

Activity由ActivityRecord表示。

一个ActivityRecord对应一个Activity,保存了一个Activity的所有信息。

一个Activity可能会有多个ActivityRecord,因为Activity可以被多次启动,这个主要取决于其启动模式。

ActivityRecord中存在着大量的成员变量,包含了一个Activity的所有信息.

ActivityRecord中的成员变量task表示其所在的TaskRecord,由此可以看出:ActivityRecord与TaskRecord建立了联系。

startActivity时会创建一个ActivityRecord(在ActivityStarter中startActivity的时候创建)。

(2)TaskRecord

Task由TaskRecord表示。

一个TaskRecord由一个或者多个ActivityRecord组成,这就是我们常说的任务栈,具有后进先出的特点。

TaskRecord内部维护一个ArrayList用来保存ActivityRecord。

TaskRecord中的成员变量mStack表示其所在的ActivityStack。

startActivity时也会创建一个TaskRecord(在ActivityStarter中创建)

(3)ActivityStack

实际是用来管理TaskRecord的,包含了多个TaskRecord;

ActivityStack内部维护了一个ArrayList,用来管理TaskRecord。

一个Task包含一个或者多个Activity,一个Stack包含一个或者多个Task。

持有一个ActivityStackSupervisor,所有的运行中的ActivityStacks都通过它来进行管理:

protected final ActivityStackSupervisor mStackSupervisor;

am stack list:查看当前的stack列表

(4)ProcessRecord

表示一个进程。每个android进程,在AMS中对应有一个ProcessRecord。

ProcessRecord中包含有ActivityRecord,ServiceRecord等。

dumpsys activity processes:查看所有的ProcesseRecord

2.Activity相关类继承关系图

3.startActivity的流程 

具体的函数分析后续补上,最近没时间啦~ 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号