1、源碼分析:
Packageinstaller主要是有界面的安裝和卸載,先看看源碼大概:
AndroidManifest.xml裏面的組件:
先看看PackageInstallerActivity.java文件,在安裝的時候,會啓動這個Activity,下面是OnCreate函數的代碼片段:
前面是解析了一大堆APK的信息,後面最主要的調用了initiateInstall函數,下面看看initiateInstall的源代碼:
前面只檢測下是否安裝過,緊接着調用startInstallConfirm函數,看下面代碼:
看關鍵代碼行00236,進入AppSecurityPermissions構造函數:
看關鍵代碼函數行00294,提取權限信息permSet,這裏有不看源碼,接着看setPermissions函數:
進入行00625:
下面是調試打印信息:
資源定義在:
把信息提取了,下面一步就是顯示了,回到第4頁的getPermissionsView函數:
看函數名就知道什麼作用了:displayPermissions
關鍵行00503,最終調用了函數:
把要展示的信息設置好,並且對於每一項設置了OnClick,以便查看loadDescription權限的具體描述:
2、調試Log:
3、效果圖:
4、流程圖:
5、第三方: