UsageStats 第 3 篇 - UserUsageStatsService 逻辑分析 2017-05-03| AndroidFramework源码分析 UsageStats使用状态管理 | UsageStats使用状态管理 [toc]
基于 Android7.1.1 源码分析 UsageStatsService 的架构和原理!
0 综述UserUsageStatsService 用于保存每个设备用户下的数据信息!每一个 UserUsageStatsService 内部都会有一个 UsageStatsDatabase 对象用于访问本地持久化文件!
本文主要分析 UserUsageStatsService 相关的接口,为 ...
阅读更多 UsageStats 第 2 篇 - UsageStatsService 消息处理 2017-04-03| AndroidFramework源码分析 UsageStats使用状态管理 | UsageStats使用状态管理 [toc]
基于 Android7.1.1 源码分析 UsageStatsService 的架构和原理
UsageStatsService 定义的事件类型目前一共有 8 种类型,全部定义在 UsageEvents.java 中,如下:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454 ...
阅读更多 Handler篇 5 - Message 源码分析 2017-03-13| 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 2017-03-06| AndroidFramework源码分析 Binder跨进程通信 | Binder跨进程通信 Android 已经内置了一些模板和工具类来帮助我们更好的实现跨进程通信,除了 aidl 模板,还有一个就是信使 Messenger,下面我们来分析下信使的原理!
1 Messenger 源码分析Messenger 本质上是实现了 aidl 模板,aidl 文件名为 IMessenger.aidl,位于 android/frameworks/base/core/java/android/os/IM ...
阅读更多 Handler篇 4 - MessageQueue 源码分析 2017-02-27| AndroidFramework源码分析 Handler线程消息机制 | Handler线程消息机制 基于 Android 7.1.1 源码,分析 handler 的架构和原理。
1 成员变量1private final boolean mQuitAllowed;
该变量表示 MessageQueue 是否可以退出,主线程的消息队列不可退出。
12@SuppressWarnings("unused")private long mPtr; // used by native co ...
阅读更多 Handler篇 3 - Looper 源码分析 2017-01-27| AndroidFramework源码分析 Handler线程消息机制 | Handler线程消息机制 基于 Android 7.1.1 源码,分析 Looper 的架构和原理。
1 成员变量1static final ThreadLocal<Looper> sThreadLocal = new ThreadLocal<Looper>();
线程本地变量,用于保存每个线程创建出来的 Looper 对象!
1private static Looper sMainLooper;
...
阅读更多 Handler篇 2 - Handler 源码分析 2017-01-19| AndroidFramework源码分析 Handler线程消息机制 | Handler线程消息机制 基于 Android 7.1.1 源码,分析 handler 的架构和原理。
0 前言本片博客通过以下几个方面总结 Handler 源码的实现架构!
1 create HandlerHandler 提供了如下的构造器方法:
12345678910111213141516171819202122232425//【方法1】默认使用当前的线程的 Looper 对象创建 Handler,如果当前线程的没有 ...
阅读更多 Handler篇 1 - Handler 初识 2017-01-13| AndroidFramework源码分析 Handler线程消息机制 | Handler线程消息机制 基于 Android 7.1.1 源码,分析 handler 的架构和原理。
0 前言Android 中有 2 中常见的通信方式,进程间的通信使用 Binder,而线程间的通信则使用 Handler,该系列文章就来总结下和 Handler 相关的知识点!
1 创建 Handler我们知道,每一个 Handler 都要和一个 Thread 的 Looper 对象相关联,一个线程可以有多个 Handl ...
阅读更多 UsageStats 第 1 篇 - UsageStatsService 的启动 2017-01-03| AndroidFramework源码分析 UsageStats使用状态管理 | UsageStats使用状态管理 [toc]
基于 Android7.1.1 源码分析 UsageStatsService 的架构和原理!
0 综述启动 UsageStatsService 服务,是从 SystemServer.startCoreServices 开始!123456789private void startCoreServices() { mSystemServiceManager.startSer ...
阅读更多 Serivce 篇 8 - Service stopSelf 流程分析 2016-10-29| AndroidFramework源码分析 Service服务 | Service服务 本文基于 Android 7.1.1 源码分析,转载请说明出处!
0 综述对于 Service,我们除了可以调用 stopService 来停止服务,服务自身也可以调用 stopSelf 方法停止,下面我们来看看这几个方法!1234567891011121314151617181920212223242526public final void stopSelf() { stopSe ...
阅读更多