简介
快速排序(Quick Sort)是由图灵奖获得者Tony Hoare设计出来,被列为20世纪十大算法之一,以“快速”命名表明该算法在整体性能上是排序算法的王者。
核心思想是:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。一趟排序过程示意图如下。
人生如梦
Retrofit2是由Square公司开源的HTTP网络请求框架的封装,最近阅读v2.4.0源码,在此记录一下。
官方使用的Demo:
1 | public interface GitHubService { |
OkHttp是一个HTTP客户端组件,要求Android2.3以上或者JDK1.7以上,最近重新读其源码,对感兴趣的部分记录一下.
Call#execute()
同步请求前会进入Dispacher#runningSyncCalls
队列,完成后remove
Call#enqueue()
异步请求会进入Dispatchder#runningAsyncCalls
队列,这里有限制条件:maxRequests<=64 && maxRequestsPerHost<=5
,不满足则放入Dispatcher#readyAsyncCalls
,这些值可通过#setMaxRequests()
和#setMaxRequestsPerHost()
设置.
异步执行的线程池默认设置为:
CorePoolSize | MaximumPoolSize | KeepAliveTime | WorkQueue |
---|---|---|---|
0 | Integer.MAX_VALUE | 60s | SynchronousQueue |
Dispatcher#setIdleCallback()
用于设置在同步请求队列和异步请求队列均为空时执行一次callbackOkio是由Square公司开发并开源的java IO组件库,最初用于其开发的HTTP客户端OkHttp的底层IO封装,从Android 4.4起,HttpURLConnection底层实现采用Okhttp,Okio组件也被开发者所认可。根据GitHub介绍,该组件定位是:
Okio is a new library that complements java.io and java.nio to make it much easier to access, store, and process your data.
我们主要是通过源码分析学习其优化的思想。
1 | // inputStream : 输入 |
整理使用Android Studio进行开发时所使用的插件,如发现更好用的插件会及时更新。
1. GsonFormat
快速将json字符串转换成一个JavaBean.
2. Android Code Generator
根据布局文件快速生成对应的Activity,Fragment,Adapter,Menu.
3. Android Parcelable code generator
JavaBean快速实现Parcelable接口.
4. Android Methods Count
显示依赖库的方法数.