1.在SystemServer中啟動PackageManagerService.main 2.newPackageManagerService()並添加到ServiceManager中 3.newinstaller(建立installer和installd的socket連接,最終在底層實現insta ...
1.在SystemServer中啟動PackageManagerService.main
2.newPackageManagerService()並添加到ServiceManager中
3.newinstaller(建立installer和installd的socket連接,最終在底層實現install,remove,dexopt等功能)
4.通過systemConfig獲取到xml文件中信息
5.創建PackageHandler Message Looper(安裝/卸載請求)
6.readPLW()(讀取data/system/packages.xml)
7.
檢查/system/etc/permissions/platform.xml中定製的library及/system/framework下的jar檔案是否需要dex提取進行優化。
若需要優化,會調用installer.dexopt提取dex到/data/dalvik-cache中
8.調用scanDirLI掃描存放apk的各個目錄
9.系統應用安裝—通過scanPackageLI逐一解析AndroidManifest.xml文件,建立每個apk的配置結構,並將apk配置信息添加到全局列表進行管理。
10.調用writeLPr()從全局列表中將apk信息寫到packages.xml和packages.list中。