PMS 第 4 篇 - PMS_DATA_SCAN_START 阶段|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android 7.1.1 源码分析 PackageManagerService 的架构和逻辑实现,本文是作者原创,转载请说明出处!
0 综述通过扫描 system 分区阶段,我们得到如下的几个集合:
mExpectingBetter:用来存放那些在 data 分区有更高版本的系统 app!
possiblyDeletedUpdatedSystemApps:用来存储那些不存在的 ...
阅读更多
PMS 第 3 篇 - PMS_SYSTEM_SCAN_START 阶段|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android 7.1.1 源码分析 PackageManagerService 的架构和逻辑实现,本文是作者原创,转载请说明出处!
0 综述我们进入第二阶段系统目录扫描来分析,代码比较长,我们来回顾下该阶段的流程:12345678910111213141516171819202122232425262728293031323334353637383940414243444546 ...
阅读更多
PMS 第 2 篇 - PMS_START 阶段|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
基于 Android 7.1.1 源码分析 PackageManagerService 的架构和逻辑实现,本文是作者原创,转载请说明出处!
0 综述我们进入第一阶段来分析,代码比较长,我们先来个总体的阶段回顾:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484 ...
阅读更多
PMS 第 1 篇 - PackageManagerService 初始化|AndroidFramework源码分析PackageManager包管理|PackageManager包管理[toc]
本文基于 Android 7.1.1 系统源码,分析 PackageManagerService 的架构和主要业务实现,本文是作者原创,转载请说明出处!
前言PMS 用来管理所有的 package 信息,包括安装、卸载、更新以及解析 AndroidManifest.xml 以组织相应的数据结构,这些数据结构将会被 其他 service 和 application 使用到。
1 PMS ...
阅读更多
Doze模式第 2 篇 - DeviceIdleController 动态机制|AndroidFramework源码分析Doze假寐模式|Doze假寐模式[toc]
基于 Android 7.1.1 源码,分析 doze 模式的原理!
0 综述在 doze 模式下,应用会受到以下限制:
暂停访问 network。
系统将忽略 wake locks。
标准 AlarmManager 闹铃(包括 setExact() 和 setWindow())推迟到 doze 模式的下一个 maintenance window 时间窗。
如果您需要设置在低电耗模式 ...
阅读更多
Doze模式第 1 篇 - DeviceIdleController 的启动|AndroidFramework源码分析Doze假寐模式|Doze假寐模式[toc]
基于 Android 7.1.1 源码,分析 doze 模式的原理!
0 综述下面是 Android devoloper 网站对于 doze 模式的介绍:
从 Android 6.0(API 级别 23)开始,Android 引入了两个省电功能,可通过管理应用在设备未连接至电源时的行为方式为用户延长电池寿命。
低电耗模式(doze)通过在设备长时间处于闲置状态时推迟应用的后台 CP ...
阅读更多
AlarmManager第 4 篇 - AlarmManagerService属性总结|AndroidFramework源码分析AlarmManager闹钟管理|AlarmManager闹钟管理首先我们来看看 AlarmManagerService 中的一些成员变量:
1、首先是一些二进制标志位:
1234567891011121314//【1】alarm 的类型,用二进制表示!private static final int RTC_WAKEUP_MASK = 1 << RTC_WAKEUP; // 1 << 0private static final int ...
阅读更多
AppOps 第 3 篇 - AppOps 权限相关方法|AndroidFramework源码分析AppOps应用操作管理|AppOps应用操作管理本文基于 Android 7.1.1 源码分析,如有错误,欢迎指正,谢谢!
[toc]
0 综述前面分析了 AppOpsManager 中的一些接口,最终都会调用 AppOpservice 中的相应接口,下面我们来看下 AppOpservice 中的权限操作!
涉及的类如下:
Settings 上层应用入口:
1234packages/apps/Settings/src/com/android ...
阅读更多
Permission第 5 篇 - grantPermission 权限授予|AndroidFramework源码分析Permission权限管理|Permission权限管理[TOC]
0 综述基于 Android 7.1.1 源码,分析系统的权限管理机制!
本片文章总结一下权限授予的相关接口。
对于 dangrous 权限,应用程序需要显式的弹出弹窗,让用户主动的选择。当用户撤销或者授予时,会主动的调用!
但是对于 normal permission,siginature permission 以及 uri permission 都是无需弹窗申请的!
那么我们来看下 ...
阅读更多
Permission第 6 篇 - permission info 的获取和更新|AndroidFramework源码分析Permission权限管理|Permission权限管理0 综述基于 Android 7.1.1,分析权限管理相关知识,本文权限信息的获取!
PackageManagerService 提供了很多个接口用于获取权限的信息!
1 获取权限组相关的信息!PackageManagerService.mPermissionGroups 保存了从所有 Application 中解析到的权限组信息!
PackageManagerService 提供了如下的两个接口 ...
阅读更多