什么是 PackageManagerService 秃诵?
PackageManagerService 是 android 系統(tǒng)中一個核心的服務(wù)之一揣炕。他負責應(yīng)用程序的 安裝钳宪、卸載靠柑、還有應(yīng)用程序的查詢认臊、以及應(yīng)用程序的一些信息管理圃庭。相當于應(yīng)用程序的一個大管家。
PackageManagerService 類關(guān)系圖
apk安裝原理
apk安裝分為有界面安裝 和 靜默安裝
有界面安裝
當用戶點擊安裝app按鈕時失晴,會調(diào)起 PackageInstallerActivity 因為配置了一組 intent filter 過濾器剧腻,如下圖
當用戶點擊安裝按鈕時,會跳轉(zhuǎn)到另外一個叫做 InstallAppProgress 的 Activity涂屁,在這個 Activity 通過 Handler 監(jiān)聽 App 的安裝成功或者失敗书在,并且更新 App 的狀態(tài)。
靜默安裝
相比有界面的安裝胯陋,無界面的安裝方式要復(fù)雜的多,內(nèi)部調(diào)用從 C 開始執(zhí)行的
-adb_commandline