AlarmManager第 2 篇 - set Alarm 流程分析|AndroidFramework源码分析AlarmManager闹钟管理|AlarmManager闹钟管理[toc]
基于 Android 7.1.1 源码,分析 AlarmManagerService 的机制
0 综述下面是设置精确 alarm 的方法:
123456789101112public static void setGlobalNoticeDialogForceShowAlarm(Context context) { Intent intent = new Intent( ...
阅读更多
Permission第 3 篇 - checkPermissions 权限检查|AndroidFramework源码分析Permission权限管理|Permission权限管理[toc]
0 综述基于 Android 7.1.1 源码,分析系统的权限管理机制!
下面来看下系统中的 check permission 相关的接口:
1 Context 权限检查接口 - ContextImpl在应用中申请权限离不开 Context,Context 中暴露了多个检查权限相关的接口,具体的实现是在 ContextImpl 中!
1.1 checkCallingPermission ...
阅读更多
AlarmManager第 1 篇 - AlarmManagerService启动|AndroidFramework源码分析AlarmManager闹钟管理|AlarmManager闹钟管理基于 Android7.1.1 源码,分析 AlarmManagerService 的启动流程,这里我们重点关注和分析 java 层的逻辑实现!
123456789private void startOtherServices() { ... ... ... traceBeginAndSlog("StartAlarmManagerService"); //【1】启动 A ...
阅读更多
Permission第 2 篇 - PackageManager 对权限的初始化流程|AndroidFramework源码分析Permission权限管理|Permission权限管理[toc]
基于 Android7.1.1 源码,分析权限管理机制
0 综述在分析 PackageManagerService 的时候,我们详细的分析了 PackageManagerService 的启动流程,包括安装信息解析,应用程序包的解析等等!
其中,涉及到了对系统中权限的解析和配置,但是由于 PackageManagerService 的启动流程过于负责,所以在 PackageManag ...
阅读更多
Permission第 1 篇 - Permission 配置和解析|AndroidFramework源码分析Permission权限管理|Permission权限管理[toc]
0 综述基于 Android 7.1.1,分析权限管理相关知识,下面关于 xml 配置的内容来自于 Android developer 文档,在加上我自身的理解!
1 Application 的权限配置和解析1.1 权限配置1.1.1 manifest 配置和 Application 权限相关配置相关的内容主要有 2 部分:
一个是在 <manifest></man ...
阅读更多
UsageStats 第 3 篇 - UserUsageStatsService 逻辑分析|AndroidFramework源码分析UsageStats使用状态管理|UsageStats使用状态管理[toc]
基于 Android7.1.1 源码分析 UsageStatsService 的架构和原理!
0 综述UserUsageStatsService 用于保存每个设备用户下的数据信息!每一个 UserUsageStatsService 内部都会有一个 UsageStatsDatabase 对象用于访问本地持久化文件!
本文主要分析 UserUsageStatsService 相关的接口,为 ...
阅读更多
UsageStats 第 2 篇 - UsageStatsService 消息处理|AndroidFramework源码分析UsageStats使用状态管理|UsageStats使用状态管理[toc]
基于 Android7.1.1 源码分析 UsageStatsService 的架构和原理
UsageStatsService 定义的事件类型目前一共有 8 种类型,全部定义在 UsageEvents.java 中,如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454 ...
阅读更多
Handler篇 5 - Message 源码分析|AndroidFramework源码分析Handler线程消息机制|Handler线程消息机制基于 Android 7.1.1 源码,分析 Message 的架构和原理。
1 成员变量1public int what;
用于标识 Message!
12public int arg1;public int arg2;
用于传递简单的整型数据,如果想传递复杂的数据使用 Bundle
1public Object obj;
用于发送任意对象,如果要用 Message 进行跨进程通信,obj 必须 ...
阅读更多
Binder跨进程通信 - 信使 Messenger|AndroidFramework源码分析Binder跨进程通信|Binder跨进程通信Android 已经内置了一些模板和工具类来帮助我们更好的实现跨进程通信,除了 aidl 模板,还有一个就是信使 Messenger,下面我们来分析下信使的原理!
1 Messenger 源码分析Messenger 本质上是实现了 aidl 模板,aidl 文件名为 IMessenger.aidl,位于 android/frameworks/base/core/java/android/os/IM ...
阅读更多
Handler篇 4 - MessageQueue 源码分析|AndroidFramework源码分析Handler线程消息机制|Handler线程消息机制基于 Android 7.1.1 源码,分析 handler 的架构和原理。
1 成员变量1private final boolean mQuitAllowed;
该变量表示 MessageQueue 是否可以退出,主线程的消息队列不可退出。
12@SuppressWarnings("unused")private long mPtr; // used by native code
java 层有 ...
阅读更多