返回

以独到眼光洞察 Android Activity 启动流程(第一部分)

Android

探索 Android 开发核心的奥秘,深入了解 Activity 启动流程的内幕。本文从源代码的角度出发,揭开 Android 9.0 中 Activity 启动的秘密,为您带来一场深入的技术之旅。

9.0 版本下的重大变革

Android 9.0 中的 Activity 启动流程与之前的版本相比,经历了显著的改造和重构。虽然整体流程依然相似,但仔细考察之下,您会发现许多细微的差别和优化。了解这些差异对于掌握 Android 开发至关重要。

启动流程的分类

根据启动 Activity 的时机,我们可以将启动流程分为两类:

  1. 根 Activity 的启动流程: 当用户第一次启动应用程序时或在某些特定情况下(例如设备重启后),将启动根 Activity。
  2. 普通 Activity 的启动流程: 在应用程序运行期间,当用户导航到其他 Activity 时,将启动普通 Activity。

根 Activity 的启动流程

根 Activity 的启动流程从 ActivityThread 类的 performLaunchActivity 方法开始。此方法负责创建 Activity 实例、设置其意图和视图层次结构,然后启动它。

关键步骤:

  1. 创建 Activity 实例: 通过反射创建 Activity 实例。
  2. 设置意图和视图层次结构: 从意图中提取数据并设置 Activity 的视图层次结构。
  3. 准备窗口: 创建并配置 Activity 的窗口。
  4. 附加到窗口管理器: 将 Activity 的窗口附加到窗口管理器,使其可见。
  5. 执行生命周期回调: 调用 onCreateonStartonResume 生命周期方法。

普通 Activity 的启动流程

普通 Activity 的启动流程与根 Activity 略有不同。它从 ActivityManager 类的 startActivity 方法开始。

关键步骤:

  1. 创建 Activity 记录: 在 Activity 堆栈中创建一个新条目。
  2. 启动 Activity: 调用 ActivityThread 类的 performLaunchActivity 方法来启动 Activity。
  3. 暂停前一个 Activity: 暂停当前处于前台的 Activity。
  4. 执行生命周期回调: 调用 onCreateonStartonResume 生命周期方法。

掌握启动流程

通过深入了解 Activity 启动流程,您可以更深入地理解 Android 开发的核心机制。掌握此流程将使您能够诊断和解决启动相关问题,并优化应用程序的启动时间。

SEO 关键词: