Android源码学习笔记
文章平均质量分 90
主要用于记录阅读Android源码时,相关的分析和感悟。
ZhangJianIsAStark
Have your heard the story about lion and gazelle?
展开
-
Android O:AsyncTask分析
重新分析下高版本的AsyncTask原创 2018-07-13 18:14:26 · 1155 阅读 · 1 评论 -
Executor Framework分析 (四) ScheduledThreadPoolExecutor
本篇博客分析下ScheduledThreadPoolExecutor的源码。ScheduledThreadPoolExecutor继承ThreadPoolExecutor, 实现ScheduledExecutorService接口。 在普通线程池的基础上,增加了延迟、周期性执行任务的能力。...原创 2018-07-11 14:09:31 · 764 阅读 · 0 评论 -
Executor Framework分析 (三) ThreadPoolExecutor部分函数分析
前一篇博客中,我们分析了ThreadPoolExecutor主要参数的含义。 本篇博客,继续分析下ThreadPoolExecutor中的函数。一、shutdown与shutdownNow 在分析代码前,我们先了解下ThreadPoolExecutor定义的生存周期。ThreadPoolExecutor初始时处于RUNNING状态,在该状态下, 线程池可以接收新的任务,同时可以处...原创 2018-07-09 11:46:24 · 630 阅读 · 1 评论 -
Executor Framework分析 (一) 概述
固定大小的线程池,通过Executors.newFixedThreadPool(n)创建, n表示线程池中线程的个数。可变大小的线程池:通过Executors.newCachedThreadPool()创建. 当有新的任务需要执行时, 若存在空闲的线程,则由空闲线程来处理任务; 若没有空闲线程,则创建新的线程来处理。 空闲线程会等待60秒来执行新任务, 当没有任务可执行时,就会自动...原创 2018-07-03 10:11:34 · 846 阅读 · 0 评论 -
Executor Framework分析 (二) ThreadPoolExecutor主要参数分析
本篇博客主要记录ThreadPoolExecutor的一些重要概念, 并分析部分接口的具体实现。很多时候,当我们不需要指定线程池的运行细节时, 会直接利用工具类Executors创建线程池,例如:public class Executors { //创建固定大小的线程池 public static ExecutorService newFixedThreadPo...原创 2018-07-04 15:32:50 · 720 阅读 · 0 评论 -
Android O: AsyncQueryHandler分析
本篇博客以Android O的代码为例,分析一下AsyncQueryHandler这个类。原创 2018-03-30 13:57:03 · 808 阅读 · 0 评论 -
Android O: zygote进程分析
本篇博客主要结合Android 8.0的代码,回顾一下zygote进程的流程。原创 2018-02-26 11:13:10 · 1737 阅读 · 0 评论 -
Android O: init进程启动流程分析(阶段一)
本篇博客主要记录一下Android 8.0中的init流程。原创 2018-02-08 11:25:04 · 3081 阅读 · 0 评论 -
Android O: init进程启动流程分析(阶段二)
init进程启动二原创 2018-02-08 16:23:21 · 3463 阅读 · 0 评论 -
Android O: init进程启动流程分析(阶段三)
Android O: init进程启动流程分析(阶段三)原创 2018-02-08 19:53:21 · 1938 阅读 · 0 评论 -
Android O: 获取APK中so的路径
APK中so的存储路径原创 2018-01-23 20:08:39 · 13000 阅读 · 0 评论 -
Android O: View的绘制流程(三):布局和绘制
View的布局和绘制原创 2018-01-04 19:52:59 · 1314 阅读 · 0 评论 -
Android O: View的绘制流程(二):测量
本文开始分析View的测量的流程。原创 2018-01-04 14:34:22 · 1111 阅读 · 0 评论 -
Android O: View的绘制流程(一): 创建和加载
View的创建和加载原创 2017-12-26 14:05:39 · 1004 阅读 · 2 评论 -
Android O: 触摸事件传递流程源码分析(下)
View传递触摸事件的流程原创 2017-12-25 19:34:26 · 1249 阅读 · 0 评论 -
Android O: 触摸事件传递流程源码分析(上)
ViewGroup事件分发原创 2017-12-21 16:06:24 · 2232 阅读 · 2 评论 -
Android中的UID和AppId
本篇博客主要记录一下Android中UID的含义,并简单分析应用appId的分配流程。原创 2017-12-02 15:09:16 · 13412 阅读 · 1 评论 -
Android O :清除应用数据
本篇博客主要以Android O的代码为例,分析一下清除应用数据的流程。原创 2017-11-22 17:16:34 · 8308 阅读 · 0 评论 -
Android 8.0 解决OkHttp问题:HttpURLConnection Leak
Http Connection leak原创 2017-11-08 21:31:57 · 19713 阅读 · 4 评论 -
Android Volley源码分析(2)
这篇博客我们继续分析一下Volley框架的源码。之前的博客侧重于RequestQueue启动后服务端的运行流程,本篇博客主要分析一下加入Request后,RequestQueue具体的处理方式。原创 2017-03-27 11:34:34 · 989 阅读 · 0 评论 -
Android Volley源码分析(1)
Volley源码分析(1)原创 2017-03-24 14:58:17 · 1086 阅读 · 2 评论 -
Android中LocalBroadcastManager的基本用法及源码分析
本篇博客主要记录一下LocalBroadcastManager的基本用法,同时分析一下LocalBroadcastManager的源码,看看其功能实现的原理。原创 2017-02-23 17:06:44 · 3745 阅读 · 0 评论 -
Android 7.0 AsyncTask分析
这一篇博客主要分析一下Android 7.0中AsyncTask的源码。原创 2017-02-15 15:43:56 · 2473 阅读 · 0 评论 -
Android 7.0 ActivityManagerService(10) App的crash处理
在这篇博客中,我们来看一下AMS处理App crash时涉及到的主要流程。原创 2017-01-14 15:17:49 · 4478 阅读 · 0 评论 -
Android N数据业务总结
本文旨在总结Android N中数据业务在框架侧的流程, 主要包括APN加载、数据卡选择、长连接拨号、短连接拨号等。原创 2017-01-13 14:22:24 · 12522 阅读 · 16 评论 -
Android 7.0 ActivityManagerService(9) 进程管理相关流程分析(3) computeOomAdjLocked
这一篇博客,我们来分析一下AMS进程管理流程中,负责计算进程oom_adj值的computeOomAdjLocked函数。原创 2017-01-09 13:36:54 · 5069 阅读 · 16 评论 -
Android 7.0 ActivityManagerService(8) 进程管理相关流程分析(2) updateOomAdjLocked
AMS中的updateOomAdjLocked函数的分析原创 2017-01-07 17:22:55 · 8840 阅读 · 3 评论 -
Android 7.0 ActivityManagerService(7) 进程管理相关流程分析(1)
进程管理(1)原创 2016-12-29 16:51:39 · 5877 阅读 · 1 评论 -
Android N中Service相关流程概述
之前的博客Android 7.0 ActivityManagerService(6) Service相关流程分析,介绍了Service相关的源码流程。 由于源码流程过长,不太容易从整体上把握Service的主要逻辑,因此在这边博客中总结一下Service相关的流程。 其实上,这篇博客也可以看做是对Service相关流程的概述。原创 2016-12-27 10:51:18 · 1878 阅读 · 0 评论 -
Android 7.0 ActivityManagerService(6) Service相关流程分析
本篇博客旨在分析Android中Service相关的源码流程。原创 2016-12-23 15:35:29 · 4970 阅读 · 5 评论 -
Android 7.0 ActivityManagerService(5) 广播(Broadcast)相关流程分析
本篇博客旨在分析Android中广播相关的源码流程。原创 2016-12-13 16:21:58 · 8371 阅读 · 3 评论 -
Android 7.0 ActivityManagerService(4) 启动Activity的过程:三
之前的博客中提到过,在启动一个新Activity时,如果界面还存在其它的Activity,那么必须先中断其它的Activity。 因此,除了第一个启动的Home界面对应的Activity外,其它的Activity均需要进行此操作,详细过程在启动Activity的过程:一的第六部分进行了描述。现在我们可以分析一下,这段之前略去的代码流程。原创 2016-12-08 10:52:20 · 3677 阅读 · 3 评论 -
Android 7.0 ActivityManagerService(3) 启动Activity的过程:二
这一篇博客,我们将继续学习Activity的启动流程。 在启动Activity的过程:一中,我们的流程最终分析到AMS通过zygote启动Activity对应的进程,现在我们看看后续的过程如何进行。原创 2016-12-06 20:09:40 · 5521 阅读 · 1 评论 -
Android 7.0 ActivityManagerService(2) 启动Activity的过程:一
从这一篇博客开始,我们将阅读AMS启动一个Activity的代码流程。 自己对Activity的启动过程也不是很了解,这里就初步做一个代码阅读笔记,为以后的迭代打下一个基础。原创 2016-12-01 21:23:54 · 11822 阅读 · 4 评论 -
Android7.0 PowerManagerService(1) 启动过程
PowerManagerService的启动过程原创 2016-10-12 14:19:58 · 5750 阅读 · 7 评论 -
Android7.0 PowerManagerService(2) WakeLock的使用及流程
PowerManagerService中WakeLock的用法和基本流程原创 2016-10-17 14:24:46 · 7420 阅读 · 0 评论 -
Android7.0 PowerManagerService(3) 核心函数updatePowerStateLocked的主要流程
前面的博客中,我们已经分析过,当Android中的进程要使用电量时,需要向PMS申请WakeLock;当进程完成工作后,需要释放对应的WakeLock。 PMS收到申请和释放WakeLock的请求后,均需要调用updatePowerStateLocked来更新电源的状态,该函数是PMS的核心方法。 接下来,我们就结合代码,看一下updatePowerStateLocked的工作流程。原创 2016-10-22 17:07:23 · 5413 阅读 · 4 评论 -
Android7.0 PowerManagerService(4) Power按键流程
按键的处理主要由InputManagerService负责,属于Android输入系统的流程。在这篇博客里,我们只关注与Power键相关的内容。InputManagerService处理的按键事件,最终将会传递到PhoneWindowManager的interceptKeyBeforeQueueing函数。 我们就从这个函数开始,逐步进行分析。原创 2016-10-24 20:57:09 · 8042 阅读 · 1 评论 -
Android7.0 BatteryService
BatteryService与PMS之间的关系比较密切,提供接口用于获取电池信息、充电状态等。 为了对Android的功耗控制有更深入的了解,我们有必要分析一下BatteryService。原创 2016-10-25 21:17:48 · 6053 阅读 · 3 评论 -
Android7.0 BatteryStatsService
BatteryStasService的主要功能是收集系统中各模块和应用进程的用电情况。 因此,我们可以认为BatteryStatsService是Android中的“电表”。 只不过这个电表比较智能,不是单纯地统计整体的耗电,而是分门别类的统计每个部分的耗电情况。 接下来我们就分析一下BatteryStatsService的主要流程。原创 2016-10-30 16:57:36 · 11212 阅读 · 3 评论