文章目录
1、简介
PackageManagerService(PMS)的主要职责是apk管理,下图列出了PMS大家族相关的成员有哪些。
2、启动
PMS在SystemServer的Bootstrap阶段启动,启动过程中按顺序创建了许多对象,扫描了不同目录下的App进行安装。
3、apk打包
apk打包流程如下图所示。
4、apk安装
apk安装有两种方式,一种是不带安装界面的,在PMS启动时会扫描某些目录下的apk进行安装,或者通过adb进行安装;另一种是有安装界面的,有专门的PackageInstaller.apk为之服务,如常见的从应用市场下载安装。下面分析PMS启动时扫描/system/app目录下的apk流程。
5、app启动
Android开机启动时,会依次自动启动SystemUI、Persistent App、Home,流程如下图。
Persistent App即AndroidManifest.xml中application的android:persistent属性设置为true,默认为false,详细说明如下。
android:persistent
Whether or not the application should remain running at all times — “true” if it should, and “false” if not. The default value is “false”. Applications should not normally set this flag; persistence mode is intended only for certain system applications.
参考:https://developer.android.com/guide/topics/manifest/application-element#persistent