Android源码分析
文章平均质量分 93
四月葡萄
简书:http://www.jianshu.com/u/1bfe34cf3a17
展开
-
Activity启动过程详解
1. 简介本文源码基于android 27。 startActivity的流程较复杂,我们这里将其过程分成三部分: startActivity–>ActivityManagerService ActivityManagerService–>ApplicationThread ApplicationThread–>Activity 这样看起来稍微简单点。通原创 2018-01-25 17:34:48 · 2485 阅读 · 0 评论 -
ActivityRecord、TaskRecord、ActivityStack以及Activity启动模式详解
1.简介先来张简单的关系图: 一个ActivityRecord对应一个Activity,保存了一个Activity的所有信息;但是一个Activity可能会有多个ActivityRecord,因为Activity可以被多次启动,这个主要取决于其启动模式。一个TaskRecord由一个或者多个ActivityRecord组成,这就是我们常说的任务栈,具有后进先出的特点。Activit...原创 2018-02-26 17:21:25 · 1923 阅读 · 0 评论 -
从setContentView揭开DecorView
1.简介看源码时我们会经常遇到DecorView,那么这个DecorView到底是什么呢,我们来研究一下。本文源码基于android 27。2.代码分析通常,我们在Activity的onCreate()中都有这么一句代码: setContentView(R.layout.main_activity);那么这代码到底是干了啥呢,我们点进去看下。2.1 Activit...原创 2018-02-26 17:46:31 · 1026 阅读 · 0 评论 -
ViewRootImpl介绍
1. 简介从上一篇文章:从setContentView揭开DecorView 中可以看到,Activity是怎么将我们的布局加载到DecorView,但是这时还不是可见的,因为这时布局还没有绘制。那么它是怎么绘制的,我们来研究一下。本文源码基于android 272. 源码分析虽然DecorView已经被创建出来了,但是目前DecorView跟PhoneWindow是没有任何关原创 2018-02-27 11:16:24 · 2747 阅读 · 0 评论 -
BroadcastReceiver广播的注册、发送和接收过程分析
1. 简介广播作为Android的四大组件之一,能够实现组件之间的通信。广播过程主要就是注册、发送和接收过程。广播使用了设计模式中的观察者模式:基于消息的发布 / 订阅事件模型,消息的生产者发布事件,而使用者订阅感兴趣的事件。因此,广播能够实现组件间的松耦合,即广播的发送者和接收者事先是可以不用知道对方存在的。接下来,我们来研究一下广播的注册、发送和接收过程的源码。本文源码基于androi原创 2018-07-03 10:20:26 · 1896 阅读 · 2 评论 -
ThreadLocal源码剖析
1.ThreadLocal概述本文源码基于android 27。1.1 简介ThreadLocal提供了线程内的局部变量,这个局部变量是只存在于当前线程的。同时,它是独立于其他线程,即其他线程无法访问。这样就不会存在线程安全的问题了。1.2 常用方法 public void set(T value) //设置当前线程中变量的副本 public T ge...原创 2018-07-10 09:54:16 · 296 阅读 · 0 评论 -
Android消息机制分析:Handler、Looper、MessageQueue源码分析
1.前言关于Handler消息机制的博客实际上是非常多的了。 之前也是看别人的博客过来的,但是过了一段时间之后,一些细节也就忘了。 所以,就自己撸一篇,权当笔记,方便以后翻阅。这篇文章主要是分析Handler消息机制原理以及收集一些面试题来讲解,熟悉的话可以不用看了。本文源码基于android 27。2.Android消息机制概述2.1 本质Android的消息...原创 2018-07-05 12:00:54 · 394 阅读 · 0 评论 -
RxJava的消息订阅和线程切换原理
0.版权声明1.前言本文主要是对RxJava的消息订阅和线程切换进行源码分析,相关的使用方式等不作详细介绍。本文源码基于rxjava:2.1.14。2. RxJava简介...原创 2018-06-13 09:49:10 · 2779 阅读 · 4 评论