AppOps 第 3 篇 - AppOps 权限相关方法
本文基于 Android 7.1.1 源码分析,如有错误,欢迎指正,谢谢! [toc] 0 综述前面分析了 AppOpsManager 中的一些接口,最终都会调用 AppOpservice 中的相应接口,下面我们来看下 AppOpservice 中的权限操作! 涉及的类如下: Settings 上层应用入口: 1234packages/apps/Settings/src/com/android ...
阅读更多
Permission第 6 篇 - permission info 的获取和更新
0 综述基于 Android 7.1.1,分析权限管理相关知识,本文权限信息的获取! PackageManagerService 提供了很多个接口用于获取权限的信息! 1 获取权限组相关的信息!PackageManagerService.mPermissionGroups 保存了从所有 Application 中解析到的权限组信息! PackageManagerService 提供了如下的两个接口 ...
阅读更多
Permission第 5 篇 - grantPermission 权限授予
[TOC] 0 综述基于 Android 7.1.1 源码,分析系统的权限管理机制! 本片文章总结一下权限授予的相关接口。 对于 dangrous 权限,应用程序需要显式的弹出弹窗,让用户主动的选择。当用户撤销或者授予时,会主动的调用! 但是对于 normal permission,siginature permission 以及 uri permission 都是无需弹窗申请的! 那么我们来看下 ...
阅读更多
AlarmManager第 3 篇 - trigger Alarm 流程分析
[toc] 基于 Android7.1.1 源码,分析 AlarmManagerService 的架构和逻辑,本篇文章来分析下 trigger Alarm 的流程! 0 回顾在上一篇 set Alarm 文章中,我们知道, set 方法会调用 AlarmMS.rescheduleKernelAlarmsLocked 方法来设置下一个 alarm! 该方法用于设置下一个 Alarm! 1234567 ...
阅读更多
AppOps 第 2 篇 - AppOpsManager 分析
[toc] 本文基于 Android 7.1.1 源码分析,如有错误,欢迎指正,谢谢! 0 综述AppOpsService 实现了大部分的核心功能逻辑,但它不能被其他模块直接调用访问,而是通过 AppOpsManager 提供访问接口。 1 重要常量和变量下面我们来看下 AppOpsManager 中定义的一些重要的变量和常量! 1.1 Operation CodeAppOpsManager 一共 ...
阅读更多
Permission第 4 篇 - requestPermission 权限申请
[TOC] 0 综述基于 Android 7.1.1 源码,分析系统的权限管理机制! 我们来分析下 dangerous 权限的申请,这类权限只能在 Activity 中申请,Activity 提供了如下接口,来帮助程序申请权限: 1 Activity.requestPermissions - 请求入口123456789101112public final void requestPermissio ...
阅读更多
UsageStats 第 4 篇 - UsageStatsService 和其他服务和进程的交互
[toc] 基于 Android7.1.1 源码分析 UsageStatsService 的架构和原理! 0 综述本文主要分析 UsageStatsService 和其他服务 / 进程交互! 我们知道 UsageStatsService 内部有两个类 LocalService 和 BinderService,他们是 UsageStatsService 提供給其他服务或进程的通信接口类! Bind ...
阅读更多
AppOps 第 1 篇 - AppOpsService 的启动
[toc] 本文基于 Android 7.1.1 源码分析,如有错误,欢迎指正,谢谢! 0 综述AppOpsService 的初始化是在 ActivityManagerService 启动的时候: 123456789101112131415161718192021222324252627282930public ActivityManagerService(Context systemContex ...
阅读更多
AlarmManager第 2 篇 - set Alarm 流程分析
[toc] 基于 Android 7.1.1 源码,分析 AlarmManagerService 的机制 0 综述下面是设置精确 alarm 的方法: 123456789101112public static void setGlobalNoticeDialogForceShowAlarm(Context context) { Intent intent = new Intent( ...
阅读更多
Permission第 3 篇 - checkPermissions 权限检查
[toc] 0 综述基于 Android 7.1.1 源码,分析系统的权限管理机制! 下面来看下系统中的 check permission 相关的接口: 1 Context 权限检查接口 - ContextImpl在应用中申请权限离不开 Context,Context 中暴露了多个检查权限相关的接口,具体的实现是在 ContextImpl 中! 1.1 checkCallingPermission ...
阅读更多