PackageManagerService: 主要负责系统中的Package管理,应用程序的安装,卸载,信息查询等。
PackageManagerService及其涉及的类间的关系
PackageManagerService的main函数时在SystemServer中调用;
/*
Android 4.0.1源代码
*/
public static final IPackageManager main(Context context, boolean factoryTest, boolean onlyCore)
{
/*
调用构造方法,其中factoryTest,onlyCore都为false
*/
PackageManagerService m = new PackageManagerService(context, factoryTest, onlyCore);
/*
注册PackageManagerService
*/
ServiceManager.addService("package", m);
return m;
}
main方法中简单调用了构造方法,PackageManagerService的大部分工作都是在构造方法中完成的。
<---PackageManagerService以下简称为PKMS--->
<---摘录自深入理解android卷2--->
PKMS构造方法主要功能:
扫描Android系统中的几个目标文件夹中的APK,从而建立合适的数据结构以管理诸如Package信息,四大组件信息,权限信息等各种信息,抽象的看,PKMS就像一个工厂,它解析物实际的物理文件(APK文件)以生成符合自己要求的"产品";例如:PKMS将解析APK包中的AndroidManifest.xml,并根据声明的Activity标签来创建与此对应的对象并加以保管。
PKMS够构造方法的大致流程:
1. 扫描目标文件夹之前的准备工作;
2. 扫面目标文件夹;
3. 扫描之后的工作。
-----构造方法源代码学习待续-----