
开源库源码解读
文章平均质量分 92
Android常用三方开源库源码解读
分则能成
这个作者很懒,什么都没留下…
展开
-
Glide v4 源码浅析(4)-into(下)
文章目录简述源码分析decode和transcode简述接上部分《Glide v4 源码浅析(3)-into(上)》,继续分析获取到源数据后,对数据进行解码转换处理,并最终设置到ImageView上。源码分析decode和transcode进入decodeFromData方法:private <Data> Resource<R> decodeF原创 2019-02-21 00:21:37 · 349 阅读 · 0 评论 -
Glide v4 源码浅析(3)-into(上)
文章目录简述源码分析ViewTarget创建Request创建Request开始加载简述Glide图片加载框架通过into方法为视图设置图片,在《Glide v4 源码浅析(2)-load方法与Registry说明》中通过load方法获得了一个RequestBuilder对象,这里将调用它的into方法传入ImageView,开始加载资源并显示在ImageView上。源码分析ViewTa...原创 2019-02-21 00:24:46 · 296 阅读 · 0 评论 -
Glide v4 源码浅析(2)-load方法与Registry说明
文章目录简述源码分析RequestBuilder构建Registry注册表补充说明简述Glide图片加载框架通过load方法设置数据源,本篇延续《Glide v4 源码浅析(1)-with》中的例子,继续分析在load方法中做了什么操作。源码分析RequestBuilder构建Glide首先通过with方法获取RequestManager对象,然后调用RequestManager的lo...原创 2019-02-09 23:01:48 · 443 阅读 · 0 评论 -
Glide v4 源码浅析(1)-with
文章目录@[toc]简述源码Glide初始化简述Glide为Android平台下的图片加载框架,它的使用方法可以查看教程文档。这里从一个最简单的使用实例入手,分析glide源码调用过程(使用的glide版本为v4.8.0):Glide.with(activity) .load(imgUrl) .into(imageView);本例实现了在一个FragmentActi...原创 2019-02-06 22:51:49 · 228 阅读 · 0 评论 -
EventBus3实例源码浅析(下)-索引类生成
概述EventBus一般使用在调用register注册时,会通过反射去解析记录订阅方法,运行期反射比较耗费性能。3.0提供了高级用法即索引,通过注解处理器在编译期就提前解析记录订阅方法。EventBus在索引生成过程中有使用到Type、Element、JavaFileObject等接口,需要先对这些接口有一定了解。实例解析使用索引详细的配置方法可以按照官方文档http://greenrobo...原创 2018-10-01 17:58:25 · 461 阅读 · 0 评论 -
EventBus3实例源码浅析(上)
使用实例这里从EventBus一个简单例子着手,逐步分析:一.注册订阅在类中添加响应方法,往EventBus注册这个类。public class MyEventSubscriber { private WeakReference<Activity> mActivity; public EventSubscriber(Activity activity原创 2018-07-29 14:10:40 · 361 阅读 · 0 评论 -
Retrofit2实例源码浅析
从Retrofit最基本的用法着手,一步步分析内部调用流程。此处以一个POST请求为例:一.构建RetrofitOkHttpClient client = new OkHttpClient();retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverte...原创 2018-07-15 22:35:45 · 445 阅读 · 0 评论 -
okhttp3实例源码浅析(5)-连接池管理
okhttp封装了一套连接池管理,通过复用连接,减少了频繁网络请求连接时的握手开销。在ConnectInterceptor这一层拦截器中获取缓存/新建socket连接:@Override public Response intercept(Chain chain) throws IOException { RealInterceptorChain realChain = (Real...原创 2018-06-30 19:26:21 · 1105 阅读 · 0 评论 -
okhttp3实例源码浅析(4)-缓存策略
okhttp内置缓存策略,在CacheInterceptor中实现了缓存机制。okhttp3未做任何设置情况下,默认不使用缓存。配置缓存全局设置如果需要使用okhttp的缓存机制,需要在构建OkHttpClient时给它设置Cache对象,例如// 参数1为缓存文件目录,参数2为缓存大小Cache cache = new Cache(directory, maxSize);...原创 2018-06-06 18:04:22 · 1163 阅读 · 1 评论 -
okhttp3实例源码浅析(3)-重试、重定向
okhttp封装了具有重试、重定向功能的拦截器RetryAndFollowUpInterceptor,它是okhttp自带的第一层拦截器。下面分析它的intercept方法内做了哪些操作:@Override public Response intercept(Chain chain) throws IOException { Request request = chain.requ...原创 2018-06-03 20:48:25 · 2063 阅读 · 0 评论 -
okhttp3实例源码浅析(2)-拦截器机制
okhttp在发起网络请求过程中很巧妙的使用了拦截器机制,逐层对request和response做处理// 关键方法Response getResponseWithInterceptorChain() throws IOException { // Build a full stack of interceptors. List<Interceptor> in...原创 2018-05-31 18:21:45 · 297 阅读 · 0 评论 -
okhttp3实例源码浅析(1)-Dispatcher
先从最简单的例子入手分析OkHttpClient client = new OkHttpClient.Builder().build(); Request request = new Request.Builder() .url(api).get().build(); client.newCall(request).enque...原创 2018-05-28 17:29:11 · 349 阅读 · 0 评论 -
RxJava2实例源码浅析(3)-线程调度
从最简单的例子着手,一步步看RxJava内部是如何封装调用的Flowable.just("hello") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Flowabl原创 2018-01-26 21:38:46 · 512 阅读 · 0 评论 -
RxJava2实例源码浅析(2)-map
从最简单的例子着手,一步步看RxJava内部是如何封装调用的Flowable.just(1, 2, 3) .map(new Function() { @Override public String apply(@NonNull Integer integer) throws Ex原创 2018-01-22 00:56:33 · 305 阅读 · 0 评论 -
RxJava2实例源码浅析(1)-just
从最简单的例子着手,一步步看RxJava内部是如何封装调用的Flowable.just(1) .subscribe(new FlowableSubscriber() { @Override public void onSubscribe(@NonNull Subscription subscription) {原创 2018-01-21 20:29:14 · 423 阅读 · 0 评论