》AppOps默认给用户提供了两个设置选项:
允许该项权限 / 禁止该项权限。
其实代码逻辑里,有三种可选项:
允许 / 禁止 /提示
用户选择“提示”选项,则该app在执行这一操作时,系统会给用户相应的提示,待用户选择后app继续执行。
AppOps总体概览
核心服务: AppOpsService
系统服务,系统启动时该服务会启动运行。
参考以下ActivityManagerService.java,ActivityManagerService启动过程中:
配置文件:appops.xml appops_policy.xml
Appops.xml位于 /data/system/目录下,存储各个app的权限设置和操作信息。
Appops_policy.xml位于 /system/etc/目录下,该文件只在appops strict mode enable时才会存在和使用。(根据源码的描述是这样的,还没有具体分析内容)
API接口: AppOpsManager
AppOpsService实现了大部分的核心功能逻辑,但它不能被其他模块直接调用访问,而是通过AppOpsManager提供访问接口。
UI层:AppOpsSummary,AppOpsCategory等
上传UI显示以及基本逻辑处理。