Android開機啓動的流程中,在系統初始化的時候,PackageManager底層實現類PackageManagerService會去掃描系統中一些特定的目錄,並解析其中的APK文件,同時,Android系統把它獲取的應用信息,保存在XML文件中,所以系統應用的信息都可以通過解析這個XML文件去查看,當系統中的Apk安裝,刪除,升級時,這個文件都會被更新,它位於/data/system/目錄下,命名爲packages.xml文件.
- < permissions>
該標籤下定義了目前系統中所有權限,並分爲兩類:系統定義的(package屬性值爲android)和apk定義的(package屬性值爲apk包名) - < package>
該標籤代表了一個apk屬性,其中節點信息的含義如下:
name: apk的包名;
codepath: apk的安裝路徑,主要有/system/app 和/data/app兩種,前者存放系統級別的應用或者廠商定製的apk,後者存放用戶安裝的第三方apk
userid: 用戶ID
version:版本號 - < perms>
對應apk的AndroidManifest文件中<user-permission>標籤,記錄apk的權限信息.
通過packgaes.xml文件中的這些標籤,可以獲取設備中很多應用信息,通常在開發系統層的時候,能夠發揮很大的價值.