讀書筆記:android設計與實現第四…

Package manager:
PackageManager是Android爲管理應用程序安裝包(APK)提供的包管理器,這部分內容和Android啓動過程聯繫緊密,是理解Android框架層的基礎之一。
PackageManager主要包括以下部分:
1,權限處理,包括對系統和應用定義的permission和permissionGroup信息的增加、刪除、查詢和檢查
2,報處理,包括掃描並安裝和卸載APK包,查詢包的UID、GID、包名、系統默認程序信息等。
3,比較兩個包的Signatures信息是否相同
4,查詢Activity、provider、Receiver、Service信息
5,查詢Application 、Package、Resource、sharedLibrary、Feature信息
6,Intent匹配
PackageManager涉及的內容非常廣泛,根據packageManager各模塊的功能和在源碼中所處的層次,可以將PackageManager劃分爲三層體系結構,應用層,中間層,服務層。
1,應用層:位於最上層,包括GoogleMarket、PackageInstaller.apk,GoogleMarket用於安裝market上的程序,PackageInstaller.apk用於安裝存儲設備上的apk安裝包
2,中間層:包括兩個模塊:PackageManager及其之類、adb和pm命令。PackageManager對外提供API接口,這是一個抽象類,由其子類ApplicationPackageManager實現其定義的接口,其上層的應用層調用這些API接口實現具體的功能。adb和pm命令用於安裝和卸載APK,這兩個模塊的共同特點,通過Binder通信最終調用PackageManagerService的對等方法實現具體的功能。
3,服務層:PackageManagerService及其相關類,PackageManagerService是在Android啓動過程中的init2階段啓動的JavaSystemService從binder通信的角度看,中間層是其Client端。

應用層調用getContext().getPackageManager(),獲取PackageManager對象,主要做了兩部分工作:
1,獲得一個IPackageManager的Binder代理對象
2,以該對象爲參數構造一個ApplicationPackageManager對象返回。





發佈了32 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章