APP启动流程 - 1835434698/1835434698.github.io GitHub Wiki
启动App流程
用户点击Home上的一个App图标, 启动一个应用的流程如下:
ActivityManagerService会执行以下操作:
-
第一步通过PackageManager的resolveIntent()收集这个intent对象的指向信息.
-
指向信息被存储在一个intent对象中.
-
下面重要的一步是通过grantUriPermissionLocked()方法来验证用户是否有足够的权限去调用该intent对象指向的Activity.
-
如果有权限, ActivityManagerService会检查并在新的task中启动目标activity.
-
现在, 是时候检查这个进程的ProcessRecord是否存在了.(如何检查:ProcessRecord是一个对象记录了进程的信息。检查这个对象是否存在。)
-
如果ProcessRecord是null, ActivityManagerService会创建新的进程来实例化目标activity.