动画系列
动画一、细说Animation五大基本动画
动画二、Animation动画插值器
动画三、ValueAnimator属性动画的基本使用
动画四、ValueAnimator属性动画高级进阶(一)
动画五、ValueAnimator属性动画高级进阶(二)
动画六、ObjectAnimator动画的基本使用
动画七、动画的PropertyValuesHolder与Keyframe
动画八、联合动画的实现
动画九、layoutAnimation动画
Animation动画源码
View Animation动画源码简析一——Animation对象获取。
View Animation动画源码简析二——动画的启动运行
自定义View笔记
自定义View学习笔记01—基础理论
自定义View学习笔记02—View的几个重要方法
自定义View学习笔记03—View的工作原理简介
自定义View学习笔记04—Canvas的绘制图形
自定义View学习笔记05—Canvas下操作画布
自定义View学习笔记06—Canvas绘制图片
自定义View学习笔记07—Canvas绘制文字
自定义View学习笔记08—Path基本操作
自定义View学习笔记09—Path之Bezier
自定义View学习笔记10—用Bezier绘制圆滑曲线
WebView
WebView的使用基础
WebView的使用之注意事项
WebView的使用之Android与JS通过WebView互调方法
JS关闭Android的Activity
WebView加载String字符串
Handler
从源码角度理解Android的通信机制——Handler消息机制
Handler消息机制二——子线程下如何使用Handler
Handler消息机制三——在子线程中使用Toast
Handler通信机制下创建Message对象的几种方法比较
View系列
从源码角度分析View的工作原理
View的绘制流程概要
对《View的工作原理》一文的补充一
View的状态是如何保存的
为什么不能在子线程中更新UI
View的事件分发机制
Handler札记
自定义View实现ImageView在任意尺寸下对Image的自适应
ImageView实现圆角的两种方式
ImageView按照比例裁剪缩放图片,保持图片不变形失真
不用自定义View,CardView实现圆角、原型、阴影等高级功能
给TextView设置行间距、行高,以及字间距
线程与定时器
线程Thread与Runnable接口
线程池及Executor的源码解析
多线程和线程池的比较与理解
UI线程与自定义线程的区别
Android多方案实现定时器功能
Timer+TimerTask的升级版ScheduledExecutorService
带计时功能的线程安全的TextView
Handler+Runnable实现循环定时
OKHttp源码解析系列
OkHttp系列一、使用OkHttp进行网络请求的4个步骤
OkHttp系列二、使用OkHttp进行同步/异步网络请求
OkHttp系列三、OkHttp同步请求流程和源码分析
OkHttp系列四、OkHttp异步请求流程和源码分析
OkHttp系列五、OKHttp的任务调度器——Dispatcher
OKHttp系列六、OKHttp的核心Dispatcher源码与运行逻辑解析
OKHttp系列七、OKHttp的拦截器链
OKHttp系列八、RetryAndFollowUpInterceptor重定向拦截器
OKHttp系列九、BridgeInterceptor桥接和适配拦截器
OKHttp系列十、CacheInterceptor缓存策略拦截器
OKHttp系列十一、ConnectInterceptor连接池拦截器
OKHttp系列十二、CallServerInterceptor服务请求拦截器
OKHttp系列十三、OKHttp的Response对象只能使用一次分析
设计模式目录——DesignPatternsDirectory
设计模式之AbstractFactoryPattern抽象工厂模式
设计模式之ChainOfResponsibilityPattern责任链模式
设计模式之StaticProxyPattern静态代理模式详解
设计模式之DynamicProxyPattern动态代理模式详解