
【框架源码解析】
Session__csdn
这个作者很懒,什么都没留下…
展开
-
OKHttp源码解析(一)
在上一篇博客中,我们介绍了OKHttp的基本用法,这一篇我们将从源码角度来看下OKHttp是如何完成一些列的网络的操作的。 我们知道在okhttpclient同步请求和异步请求调用的接口不一样,但它们最后都是殊途同归地走到Call里面的private Response getResponseWithInterceptorChain(boolean forWebSocket) throws转载 2016-06-27 10:09:41 · 270 阅读 · 0 评论 -
公共技术点之 Java 注解 Annotation
不少开源库都用到了注解的方式来简化代码提高开发效率。本文简单介绍下 Annotation 示例、概念及作用、分类、自定义、解析,并对几个 Android 开源库 Annotation 原理进行简析。1. Annotation 示例Override Annotation@Overridepublic void onCreate(Bundle savedInstanceSta转载 2016-06-20 23:47:52 · 259 阅读 · 0 评论 -
公共技术点之 Java 动态代理
1. 相关概念1.1 代理在某些情况下,我们不希望或是不能直接访问对象 A,而是通过访问一个中介对象 B,由 B 去访问 A 达成目的,这种方式我们就称为代理。这里对象 A 所属类我们称为委托类,也称为被代理类,对象 B 所属类称为代理类。代理优点有:隐藏委托类的实现解耦,不改变委托类代码情况下做一些额外处理,比如添加初始判断及其他公共操作根据程序运行前代理转载 2016-06-22 11:43:47 · 197 阅读 · 0 评论 -
PhotoView 源码解析
1. 功能介绍特性(Features):支持 Pinch 手势自由缩放。支持双击放大/还原。支持平滑滚动。在滑动父控件下能够运行良好。(例如:ViewPager)支持基于 Matrix 变化(放大/缩小/移动)的事件监听。优势:PhotoView 是 ImageView 的子类,自然的支持所有 ImageView 的源生行为。任意项目可以非常方便的从 ImageVi转载 2016-06-22 13:40:50 · 505 阅读 · 0 评论 -
CircularFloatingActionMenu 源码解析
1. 功能介绍一个与著名应用 Path 菜单类似的圆形弹出菜单,可方便的定制菜单以及动画。菜单可能是非完整圆形,本文统称为圆形菜单。1.1 特点可自定义动画、菜单、角度范围、半径等。1.2 概念以上是简单的圆形弹出菜单示例,更详细的示例图见:Screenshot。菜单按钮(Event):点击会弹出圆形菜单的控件,如上图的 + 对应控件,对应代码中转载 2016-06-22 14:03:24 · 597 阅读 · 0 评论 -
HoloGraphLibrary 源码解析
本文为 Android 开源项目源码解析 中 HoloGraphLibrary 部分项目地址:HoloGraphLibrary,分析的版本:028cd2a,Demo 地址:HoloGraphLibrary Demo分析者:AaronPlay,校对者:lightSky,校对状态:完成1. 功能介绍HoloGraphLibrary 是一个可用于绘制图表的项目,支持绘制线转载 2016-06-23 13:58:02 · 333 阅读 · 0 评论 -
ViewPagerindicator 源码解析
本文为 Android 开源项目源码解析 中 ViewPagerindicator 部分项目地址:ViewPagerIndicator,分析的版本:8cd549f,Demo 地址:ViewPagerIndicator Demo分析者:lightSky,校对者:aaronplay,校对状态:完成1. 功能介绍1.1 ViewPagerIndicatorView转载 2016-06-23 13:59:10 · 313 阅读 · 0 评论 -
xUtils 源码解析
本文为 Android 开源项目源码解析 中 xUtils 部分。项目地址:xUtils,分析的版本:192c2a886c,Demo 地址:xUtils Demo分析者:Caij,校对者:maogy,校对状态:未完成1. 功能介绍xUtils 一个 Android 公共库框架,主要包括四个部分:View,Db, Http, Bitmap 四个模块。View转载 2016-06-23 14:00:09 · 291 阅读 · 0 评论 -
EventBus 源码解析
本文为 Android 开源项目源码解析 中 EventBus 部分项目地址:EventBus,分析的版本:ccc2771,Demo 地址:EventBus Demo分析者:Trinea,校对者:扔物线,校对状态:完成1. 功能介绍1.1 EventBusEventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化 Android转载 2016-06-23 14:01:16 · 319 阅读 · 0 评论 -
Android Universal Image Loader 源码分析
本文为 Android 开源项目源码解析 中 Android Universal Image Loader 部分项目地址:Android-Universal-Image-Loader,分析的版本:eb794c3,Demo 地址:UIL Demo分析者:huxian99,校对者:Grumoon、Trinea,校对状态:完成1. 功能介绍1.1 Android Univ转载 2016-06-23 14:52:51 · 338 阅读 · 0 评论 -
公共技术点之 Android 动画基础
一 传统 View 动画(Tween/Frame)1.1 Tween 动画主要有 4 中:缩放、平移、渐变、旋转文件位置: res/anim/filename.xml编译资源的数据类型:an Animation资源引用:Java: R.anim.filenameXML: @[package:]anim/filename <set xm转载 2016-06-23 15:10:38 · 366 阅读 · 0 评论 -
公共技术点之 Java 反射 Reflection
1. 了解 Java 中的反射1.1 什么是 Java 的反射Java 反射是可以让我们在运行时获取类的函数、属性、父类、接口等 Class 内部信息的机制。通过反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值,即使方法或属性是私有的的也可以通过反射的形式调用,这种“看透 class”的能力被称为内省,这种能力在框架开发中尤为重要。 有些情况转载 2016-06-23 15:12:13 · 263 阅读 · 0 评论 -
公共技术点之 View 绘制流程
View 绘制机制1. View 树的绘图流程当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由 Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,该函数所做 的工作可简单概况为是否需要重新计算视图转载 2016-06-20 23:41:54 · 396 阅读 · 1 评论 -
公共技术点之依赖注入
1. 依赖如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖。例如下面类 Human 中用到一个 Father 对象,我们就说类 Human 对类 Father 有一个依赖。public class Human { ... Father father; ... public Human() {转载 2016-06-20 23:28:26 · 257 阅读 · 0 评论 -
OKHttp源码解析(二)
上一篇文章里我们大致分析了OkHttp整个请求的流程,重点分析了具体发送请求前都做了哪些操作,这篇文章我们将继续上篇的内容,看看在发送请求过程中做了什么,看了上篇文章的应该都知道,我们将从HttpEngine的sendRequest入手看是如何操作的public void sendRequest() throws RequestException, RouteException, IOExce转载 2016-06-27 10:10:32 · 296 阅读 · 0 评论 -
OKHttp源码解析(三)
public void readResponse() throws IOException { if(this.userResponse == null) { if(this.networkRequest == null && this.cacheResponse == null) { throw new IllegalSta转载 2016-06-27 17:57:19 · 355 阅读 · 0 评论 -
UrlConnection连接和Socket连接的区别
关于UrlConnection连接和Socket连接的区别,只知道其中的原理如下:抽象一点的说,Socket只是一个供上层调用的抽象接口,隐躲了传输层协议的细节。urlconnection 基于Http协议,Http协议是应用层协议,对传输层Tcp协议进行了封装,是无状态协议,不需要你往考虑线程、同步、状态治理等,内部是通过socket进行连接和收发数据的,不过一般在数据传输完成之后需要封转载 2016-06-27 17:59:07 · 3212 阅读 · 1 评论 -
OkHttp3源码分析[综述]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]本文主要是综述与常识介绍OkHttp是一个高效的Http客户端,有如下的特点:支持HTTP2/SPDY黑科技socket自动选择最好路线,并支持自动重连拥有自动维护转载 2016-06-27 21:22:16 · 1446 阅读 · 0 评论 -
OkHttp3源码分析[复用连接池]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]1. 概述HTTP中的keepalive连接在网络性能优化中,对于延迟降低与速度提升的有非常重要的作用。通常我们进行http连接时,首先进行tcp握手,然后传输数据,最转载 2016-06-27 21:23:29 · 2071 阅读 · 0 评论 -
OkHttp3源码分析[缓存策略]
OkHttp系列文章如下OkHttp3源码分析[综述]OkHttp3源码分析[复用连接池]OkHttp3源码分析[缓存策略]OkHttp3源码分析[DiskLruCache]OkHttp3源码分析[任务队列]本文专门分析OkHttp的缓存策略,应该是okhttp分析中最简单的一篇了HTTP缓存基础知识在分析源码之前,我们先回顾一下http的缓存Header的含义1. E转载 2016-06-27 21:24:23 · 1294 阅读 · 0 评论 -
OkHttp3源码分析[任务队列]
本文目录:线程池基础反向代理模型OkHttp的任务调度看过Wiki的都知道OkHttp拥有2种运行方式,一种是同步阻塞调用并直接返回的形式,另一种是通过内部线程池分发调度实现非阻塞的异步回调。本文主要分析第二种,即OkHttp在多并发网络下的分发调度过程。本文主要分析的是Dispatcher对象1. 线程池基础在初学android的时候,各位可能会用new Thread +转载 2016-06-28 14:44:41 · 823 阅读 · 0 评论 -
Android RecyclerView 使用完全解析 体验艺术般的控件
概述RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListView、GridView。那么有了ListView、GridView为什么还需要RecyclerView这样的控件呢?整体上看RecyclerView架构转载 2016-07-14 10:46:12 · 376 阅读 · 0 评论 -
Android属性动画源代码解析(超详细)
本文假定你已经对属性动画有了一定的了解,至少使用过属性动画。下面我们就从属性动画最简单的使用开始。 ObjectAnimator .ofInt(target,propName,values[]) .setInterpolator(LinearInterpolator) .setEvaluator(IntEvaluator) .setDu转载 2016-07-15 15:01:28 · 744 阅读 · 0 评论 -
公共技术点之 View 事件传递
1、基础知识(1) 所有 Touch 事件都被封装成了 MotionEvent 对象,包括 Touch 的位置、时间、历史记录以及第几个手指(多指触摸)等。(2) 事件类型分为 ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL,每个事件都是以 ACTION_D转载 2016-06-20 23:23:40 · 281 阅读 · 0 评论 -
Volley 源码解析
本文为 Android 开源项目源码解析 中 Volley 部分项目地址:Volley,分析的版本:35ce778,Demo 地址:Volley Demo分析者:grumoon,校对者:huxian99、Trinea,校对状态:完成1. 功能介绍1.1. VolleyVolley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在转载 2016-06-23 15:13:27 · 288 阅读 · 0 评论