前言 源码大家可以到这里搜索下载 正文 Timer内部有2个比较重要的成员变量 一个是任务队列,一个是执行任务的线程。我们线看下这个 TimerThread,它继承自Thre...

前言 源码大家可以到这里搜索下载 正文 Timer内部有2个比较重要的成员变量 一个是任务队列,一个是执行任务的线程。我们线看下这个 TimerThread,它继承自Thre...
一 前言 阅读本文的前提是你已经知道什么是Handler、Looper、ThreadLocal等基本类。源码位置可以在这里搜索。 二 源码分析 enqueueMessage方...
前言 本文假设你已经了解了android中Binder相关的机制,如果你还未了解相关知识,就没必要阅读本文了。 正文 我们直接看ContextImp相关代码 看线Activi...
前言 本文假设你已经了解了android的Binder机制,如果你还未了解相关知识,就没必要阅读本文了。 正文 一个进程可以运行多个app(mainfest中通过proces...
一、lock的使用 通过源码可知,Lock类是个interface,定义了一些方法,其中一个方法叫lock。ReentrantLock实现了Lock,我们先简单的介绍下loc...
一、前言 本文只讨论android通过隐式Intent查找组件(ComponentName)的方式。 二、intent-filter三要素 1. action action ...
一、前言 源码位置在这里搜素。 本文只阐述SparseArry的数据结构,并简单分析代码实现 二、源码分析 看线SparseArray的几个成员变量 几个成员变量非常简单 D...
一、为什么要用泛型? 1、看一段代码 在不用泛型的情况下,我们可以向list对象中添加任何对象,这个没问题。但是,当我们想获取数据的时候,麻烦就来了,我们不知道每个index...
一、android中的Uri 1、Uri概述Uri是Universal Resource Identifier的缩写,中文称为统一资源标示符。2、结构 在android中体现...
先看一段代码 我们预测下这段代码的执行结果,也就是count的最终值。有人可能会说是10000。但是实际结果是小于等于10000的一个数。原因是 是一个非原子操作,至少包含三...
一、内部类基础 成员内部类先看一段代码 执行结果 我们看到,成员内部类可以访问外部类的一切成员变量和方法(包括static变量和static方法)。如果内部类出现和外部类相同...
从内存角度来分析static关键字对于这个问题,我们只需简单知道三件事,栈、堆和方法区栈区:存放对象的引用或者数组的引用堆区:存放具体的对象或者数组方法区:存放方法和共享变量...
先看一段代码 大家猜下执行结果。这个执行结果很可能不是打印一次"create Fruit",我本次测试结果如下: 那为什么会出现这样的结果呢?因为有可能多个线程都能跑过这段代...
一、前言 1、源码位置在这里。 ArrayDeque的三个基本成员变量 实际上这就是一个数组+头尾下标。本文只简单介绍ArrayDeque作为Queue使用的情况。 二、Ar...
一、前言 LinkedList源码位置在这里。 LinkedList采用双向链表,至于为什么采用双向链表,我们结尾再说。 本文旨在简单的了解LinkedList的数据结构,只...
一、什么是插件化 在android开发中,所谓插件化,就是在android运行中,我们可以动态加载dex文件到app的进程中。这样的做的好处是app能在不升级的情况下更新有问...
一、前言 源代码在这里。本文旨在于对Message做个简单的介绍和分析,让大家对Message有个大致轮廓上的认识,如果想要完全理解,还需研究Handler、MessageQ...
一、简介 Parcelable定义了一组接口,只要开发者实现了这些接口,那么系统就可以把相关的对象转换成二进制流进行传输。 二、少啰嗦,看代码 代码 定义了序列化的规范,也就...