- 博客(14)
- 资源 (41)
- 收藏
- 关注
原创 startActivity源码探索
本篇文章是基于API25源码知识Activity:这个大家都熟悉,startActivity方法的真正实现在Activity中Instrumentation:用来辅助Activity完成启动Activity的过程ActivityThread(包含ApplicationThread + ApplicationThreadNative + IApplicationThread):真正启动Acti
2017-09-29 18:24:59 334
原创 Android View 绘制之Layout源码探索
Layout 就是确定子元素的位置,当父布局的位置被确定后,就会循环遍历调用onLayout方法先回到performTraversals方法 private void performTraversals() { ...... //lp.width和lp.height在创建ViewGroup实例时值为MATCH_PARENT int childWidthMeasur
2017-09-27 14:52:29 272
原创 setContentView中的源码探索(未修订)
setContentView中的源码探索(未修订)PhoneWindow是window的子类DecorView是整个ViewTree的最顶层ViewDecorView和加载了我们提供的布局ViewRootImpl则负责渲染视图,WindowManager和DecorView的纽带基于android 25源码进行探索,先从setContentView中进行探索 public void
2017-09-23 15:36:59 284
原创 Volley的框架的终结篇
Volley的框架的终结篇之前都是各个模块讲解,当然Volley其实也是各个模块分开了,职责分明,这样探索源码,可以各个突破,最后顺着使用流程去看一遍就会融汇贯通使用 RequestQueue mQueue = Volley.newRequestQueue(this); StringRequest stringRequest = new StringRequest("h
2017-09-21 11:19:51 328
原创 Volley的框架解读七(Request)
先看看UML图 Request也是volley的核心类之一,是一个抽象类。volley中所有的请求都是由Request的子类来完成的,它定义了一些公共性的内容,并抽象出来,其子类只需要继承该类并实现其预留的抽象方法即可。比如volley默认实现的请求如StringRequest、JsonRequest、JsonObjectRequest等都是继承自Request。再比如在Google的官方文档中定义
2017-09-21 10:07:38 374
原创 AsyncTask源码探索
AsyncTask源码探索这里写代码片知识点:Executors:提供了一系列静态工厂方法用于创建各种线程池,不了解的可以看一下 java并发编程–Executor框架SerialExecutor实现了Executors 接口,因为他的存在AsyncTask变成了串行的了,当然你也可以自己变成并行,不过并行的一个报错,其他的都会受印象。private static class SerialExec
2017-09-20 12:11:26 286
原创 一、Android消息机制(handler源码探索)
handler源码探索Looper(轮询器)大家都说Looper在android一启动就会启动,但是不看源码,也不知道真假ActivityThreadpublic static void main(String[] args) { //other code.. 我们只看有用的部分,其他暂略过Looper.prepareMainLooper(); //准备looper,注,绑定的为当前主线程Ac
2017-09-19 17:16:49 421
原创 Volley的框架解读六(消息分发器ResponseDelivery和ExecutorDelivery)
先看看UML ResponseDelivery定义为一个接口,这是volley中最为有特色的定义方式,无论是Request Network还是HttpStack,每一个小模块都是用一个接口来对接的,大大降低了模块之间的耦合性,同时由于模块之间对接是接口,这样扩展性极佳。ResponseDelivery,从字面也可以理解,其主要的作用就是传递响应。内部定义了三个方法:/** * Parse
2017-09-18 15:35:26 530
原创 Volley的框架解读五(网络调度NetworkDispatcher)
先看UML NetworkDispatcher也是volley中的核心类,该类的是一个线程,主要是在从阻塞队列中获取request,然后去请求网络,然后获得响应后ResponseDelivery,去分发要知道,在定义该类的时候public class NetworkDispatcher extends Thread {} ,很明显这是一个线程。则必然有run()方法,因此从队列中获取reque
2017-09-18 15:24:08 561
原创 Volley的框架解读四(请求队列RequestQueue)
先看UML 可以说RequestQueue是volley最为核心的类了,其他一切都是围绕着该类进行运转的。之前讲述的Volley类,其主要工作就是创建RequestQueue的实例并start()。用最概括的话来描述RequestQueue就是:汇集所有Request并分发给缓存和网络调度线程。RequestQueue的工作流程是这样的: 创建RequestQueue实例后,调用start(
2017-09-18 13:52:43 1225
原创 Volley的框架解读三(字节流的优化)
先看UML。其实用到这两个东西就是在访问网络的时候 源码解读绝招二:你还记得UML,和设计模式二人组么,用程序员共用的语言去看他们吧~在对响应的实体进行操作的时候,使用到了byte[] ,由于volley是轻量级频次高的网络请求框架,因此会大量使用到byte[] ,这样的话会频繁创建和销毁byte[]。为了提高性能,volley定义了一个byte[]缓冲池,即ByteArrayPool
2017-09-17 19:45:00 394
原创 Volley的框架解读二(Http访问及处理)
先看UML图 源码解读绝招二:把握类的主要流程,大体看一下用到的类,看看方法,猜一下用法,别去抓细节。在volley中执行网络请求的接口是Network,其实现类是BasicNetwork。需要注意的是,将Network与HttpStack、HttpClientStack 、HurlStack进行区别。HttpStack是定义网络请求的,是使用HttpClient或者HttpURLConnect
2017-09-17 16:31:23 398
原创 Volley的框架解读一(Http的封装)
先瞄瞄UML类图 在Volley中真正的网络请求是由HttpStack定义的,这是一个接口,它唯一的一个方法就是执行网路请求获取响应。而HttpClientStack和HurlStack是该接口的实现类,对应不同的网络请求的底层实现,HttpClientStack是基于HttpClient的,HurlStack是基于HttpURLConnection的。先看看这个父接口(HttpStack)源码解
2017-09-15 17:46:18 368
原创 Volley的框架解读准备一HttpURLConnection
请求响应流程设置连接参数的方法 setAllowUserInteraction setDoInput setDoOutput setIfModifiedSince setUseCaches setDefaultAllowUserInteraction setDefaultUseCaches设置请求头或响应头HTTP请求允许一个key带多个用逗
2017-09-15 17:42:22 502
5.0效果的EditText.rar
2015-04-28
ButtonFlow
2015-02-17
程序锁修复版
2014-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人