APP启动流程 - 1835434698/1835434698.github.io GitHub Wiki

启动App流程

用户点击Home上的一个App图标, 启动一个应用的流程如下:

appqidong

ActivityManagerService会执行以下操作:

  1. 第一步通过PackageManager的resolveIntent()收集这个intent对象的指向信息.

  2. 指向信息被存储在一个intent对象中.

  3. 下面重要的一步是通过grantUriPermissionLocked()方法来验证用户是否有足够的权限去调用该intent对象指向的Activity.

  4. 如果有权限, ActivityManagerService会检查并在新的task中启动目标activity.

  5. 现在, 是时候检查这个进程的ProcessRecord是否存在了.(如何检查:ProcessRecord是一个对象记录了进程的信息。检查这个对象是否存在。)

  6. 如果ProcessRecord是null, ActivityManagerService会创建新的进程来实例化目标activity.