![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
第三方库
Vinson武
Android开发程序猿
展开
-
Glide 4.8.0缓存分析
上一篇讲了Glide加载图片的基本过程 Glide基本加载流程源码分析这一篇详细分析一下Glide的缓存实现。Glide缓存和其他的图片缓存框架类似都是用到内存缓存和硬盘缓存两种。缓存Key既然是缓存功能,就必然会有用于进行缓存的Key。Glide的缓存key生成非常麻烦,一共近十个参数共同决定。生成缓存Key的代码在Engine类的load()方法当中,这部分代码我们在上一篇文章当中已经分析过了,只不过当时没有仔细关注缓存部分内容。现在重新看下Engine类的load()方法实现:public原创 2020-11-04 09:19:05 · 308 阅读 · 0 评论 -
Glide 4.8.0基本加载流程源码分析
基本使用Glide.with(this).load(url).into(imageView);首先,调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity或者Fragment类型的参数。也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调用的地方既不在Activity中也不在Fragment中呢?也没关系,我们可以获取当前应用程序的ApplicationContex原创 2020-11-04 09:15:31 · 272 阅读 · 0 评论 -
RxJava2如何实现链式调用和线程切换
线程切换背压背压在计算机系统中指网络拥塞信息逆流通过。在rxjava中理解为:被观察者发送消息太快以至于它的操作符或者订阅者不能及时处理相关的消息,从而操作消息的阻塞现象。在RxJava2.0中官方,推出了Flowable 和Subscriber用来支持背压,同样的去除了Observable对背压的支持,对的就像你上面看到的,Observable不再支持背压了,即使阻塞崩溃也不会抛出Miss...原创 2020-05-02 17:55:57 · 1884 阅读 · 0 评论 -
EventBus的简单和原理
基本介绍EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。源码基本使用自定义一个类,用于发送和接收信息。构造时传入要发送的信息,然后get方法返回信息。(也可以是空类).例如:p...原创 2020-05-02 17:51:34 · 647 阅读 · 0 评论 -
Retrofit简单使用
Retrofit学习笔记Retrofit基础Retrofit 中使用注解的方式来区分请求类型,比如@GET("/record")表示一个GET请求,要以 / 开头,会拼接到基本URL后面,record为接口地址。各个格式和含义如下:例如,GET请求(其他请求类似): @GET("/apistore/mobilenumber/mobilenumber") Ca...原创 2020-05-02 17:45:25 · 369 阅读 · 0 评论 -
okHttp使用和原理分析
基本用法GET在okHttp,每次网络请求就是一个Request,在Request里填写我们需要的url、header等其他参数,再通过OkHttpClien构造出Call,Call内部传入请求参数,得到回复,并将结果告诉调用者。通过同步的方法去操作网络请求同步方法是在当前线程的,所以要开一个子线程去访问网络通过异步的方式:在同步的基础上将execute改成enqueue,...原创 2020-05-02 17:41:47 · 432 阅读 · 0 评论 -
GreenDao简单使用
简介greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。GreenDao特点:性能最大化,可能是Android平台上最快的ORM框架易于使用的API最小的内存开销依赖体积小支持数据库加密强大的社区支持使用配置在工程的build.gradle中配置,添加依赖插件buildscript { repositori...原创 2020-05-02 16:46:58 · 526 阅读 · 0 评论 -
内存监控LeakCanary1.6.1使用和原理分析
使用LeakCanary 的集成过程很简单,首先在 build.gradle 文件中添加依赖:dependencies { debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.1' releaseImplementation 'com.squareup.leakcanary:leakcanary-and...原创 2020-04-16 15:55:41 · 314 阅读 · 0 评论