android R -- Activity启动流程分析一

926 阅读1分钟

新启动一个app的执行流程图总览

AMS端的逻辑流程 image.png

高清图:www.plantuml.com/plantuml/pn…

新进程中创建activity,并执行生命周期 image.png 高清图:www.plantuml.com/plantuml/pn…

androidR里面ActivityStack在androidS被去掉了。framework层的继承关系可以参考juejin.cn/post/710833…

ActivityStack就是Task的子类。所以androidS简化了继承关系,减少了层级。有了RootTask和子Task的概念。

系统各容器的关系可以通过adb shell dumpsys activity activities查看

image.png 截取了一块,可以看到顶层是TaskDisplayArea。然后下面是四个Task,根据type可以看到一个是standard,一个是home,分别对应我们的app和launcher;还有两个mode=split-screen-primary 和 mode=split-screen-secondary分别对应分屏的栈,系统预留的。 每个task的详细信息通过这个命令也可以看到的。

image.png

截取了一个,task信息,内部的activityRecord信息,bound信息等等。很详细 常用的adb命令 参考: juejin.cn/post/708070…