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、第三方:
原文地址: http://blog.csdn.net/rjdeng/article/details/49120467