Android: Activity的启动流程(基于Android 13)


文章目录

  • 前言
  • 一、Activity启动流程图
  • 二、Activity启动方法时序图
  • 三、疑问
    • 1. Zygote是如何创建应用进程的?
    • 2. AMS是如何管理新创建的Activity进程?
  • 总结


前言

随着Android版本的不断迭代,代码常常会有所变更,本文就基于Android 13再次走一遍Activity的启动流程。


一、Activity启动流程图

Android: Activity的启动流程(基于Android 13)_第1张图片

二、Activity启动方法时序图

Android: Activity的启动流程(基于Android 13)_第2张图片

三、疑问

1. Zygote是如何创建应用进程的?

Zygote是通过反射去执行ActivityThread的main方法,而ActivityThread是由AMS通过socket向Zygote传过去的。

相同的流程有:system server进程创建;

2. AMS是如何管理新创建的Activity进程?

如果要实现管理,AMS就要拿到Activity的句柄,而句柄其实是由Activity本身创建时通过跨进程通讯给到AMS的。

代码调用时序:
ActivityThread.main——>thread.attach——>mgr.attachApplication


总结

以上就是今天要讲的内容,本文仅仅简单地走了一遍在Android13中Activity的启动流程,只是有些许变化,整体流程思路还是和以前版本一致。

想要了解源码思路,画时序图还是很有帮助的,跟踪代码不迷路。

你可能感兴趣的:(Android进阶,android,Activity)