
Android应用源码分析
文章平均质量分 91
牧之丶
但行好事,莫问前程。
展开
-
LRUCache源码学习
一、LRU Cache数据结构LRU CacheLRU(Least Recently Used)含义是最近最少使用(也即是最久未使用),一种Cache替换算法。狭义的Cache指的是位于CPU和主存间的快速RAM。广义上的Cache指的是位于速度相差较大的两种硬件之间, 用于协调两者数据传输速度差异的结构。 Cache的容量有限,因此当Cache的容量用完后,而又有新的内容需要添加进来时, 就原创 2015-07-14 21:15:16 · 1093 阅读 · 0 评论 -
【Android应用源码分析】HandlerThread 源码分析
Android提供了一个封装好的带有looper的线程类,即为HandlerThread。 本质就是个Thread。Thread线程是一次性消费品,当Thread线程执行完一个耗时的任务之后,线程就会被自动销毁了。如果我们需要一个工作者线程,而不是把它当作一次性消耗品,那么就可以使用HandlerThread。Android 5.1中HandlerThread源码分析/** * Handy cla原创 2015-09-01 22:04:18 · 924 阅读 · 0 评论 -
【Android应用源码分析】android中HashMap的替代者——SparseArray 源码分析
前言当我们定义HashMap<Integer, E> hashMap = new HashMap<Integer, E>(); 时IDE会给出一个 警告:用SparseArray<E>来替代,以获取更好性能。HashMap的get和put时间复杂度是O(1)呀,为什么SparseArray的性能会更好?这两天花时间详细分析了下源码,发现SparseArray的优点主要是节约内存,非常适合于移动端。原创 2015-09-07 20:18:35 · 1841 阅读 · 1 评论 -
【Android应用源码分析】IntentService 源码分析
IntentService是一个带线程的service,用于处理Intent类型的异步任务请求。当客户端调用startService(Intent)发送请求时,Service服务被启动,且在其内部构建一个工作线程来处理Intent请求。当工作线程执行结束,Service服务会自动停止。IntentService继承于Service,它最大的特点是对服务请求逐个进行处理。当我们要提供的服务不需要同时处原创 2015-10-03 23:34:38 · 1093 阅读 · 0 评论 -
【Android应用源码分析】Java多线程:线程本地变量ThreadLocal源码分析
ThreadLocal简介线程本地变量ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量,不能访问其他线程的该变量,线程之间互不影响。即变量是线程内共享的,线程间互斥的。ThreadLocal类源码分析本文通过jdk1.7)中的ThreaLocal类进行解析:package java.lang;import java.lang.ref.*;import原创 2015-10-06 21:52:59 · 1205 阅读 · 0 评论 -
Java集合框架常用类源码分析与总结
Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 Java集合类的整体框架如下: ArrayList ArrayList是基于数组实现的,是原创 2015-10-06 21:26:56 · 1533 阅读 · 0 评论