将目标平台声明为 API Level 22(as know as Android 5.1) 或更早,这样可以恶意利用Android为了兼容早期的应用程序而(在安装后)默认授予全部权限的行为。因此,Google对这些应用仅提供权限提醒,而不作实际控制,具体来说,包括Google Play上和本地文件点击安装按钮后弹出的权限列表。
目标平台为API 23(a.k.a. Android 6.0)及以上, 意味着应用程序对外声明自己成功适配了所有目标平台的特性,当然也就包括API 23引入的动态运行时(Runtimr Permission)机制。这类程序在Play Store 中点下安装按钮时并不会提醒所需的权限,本地文件点击安装按钮后会提示不需要任何权限。【注①】但近期下载过的应用在没有发布新版本的情况下重新安装有可能不会被再次提醒。
①:Google目前正在积极督促开发者提高Target API Level,如果推进顺利,那么在几年后应该可以看到新系统不再兼容老应用(就像现在的iOS一样)。
②:4.4上该功能是一项实验性特性,默认情况下并不向所有用户开放,需要使用第三方程序作为入口,或使用CyanogenMod等第三方系统;5.0则由系统开放入口,且不同厂商(如HTC, Sony Mobile等)对此进行了不同扩展,例如数据流量等本来不在原生系统控制范围内的权限也都纳入其中;允许以权限组内的小项为单位进行更为细致的控制(而原生系统中则只能按组控制,和6.0以后的运行时权限一模一样)。