OkHttp线程池和连接池
OkHttp线程池和连接池了解了OkHttp的网络请求流程以及拦截器实现原理,再关注OkHttp中两个重要的:OkHttp的线程池和连接池。1、OkHttp线程池在OkHttp网络请求流程一文中,我们分析了OkHttp异步和同步请求流程。请求最后都在Dispatcher中分发调度处理,最后被ExecutorService执行。1.1、DispatcherDispatcher中执行任务的执行器是ex
分类
聚焦于 GitHub 上优秀的 Android 开源组件推荐与剖析,深入探讨其应用与集成实践。从 AndroidX 库的核心模块(如 AppCompat、ConstraintLayout)到 JitPack 仓库的便捷依赖管理,提供详尽的使用指南、源码解读和优化案例。涵盖网络框架、UI 组件、数据库工具等热门项目,帮助开发者快速引入并提升项目效率。
共 79 篇文章
OkHttp线程池和连接池了解了OkHttp的网络请求流程以及拦截器实现原理,再关注OkHttp中两个重要的:OkHttp的线程池和连接池。1、OkHttp线程池在OkHttp网络请求流程一文中,我们分析了OkHttp异步和同步请求流程。请求最后都在Dispatcher中分发调度处理,最后被ExecutorService执行。1.1、DispatcherDispatcher中执行任务的执行器是ex

OkHttp拦截器Interceptor接着OkHttp网络请求流程一文,我们知道OkHttp网络请求最后是通过RealCall的getResponseWithInterceptorChain()方法完成。该方法完整实现如下:1、拦截链OkHttp的核心就是拦截器,通过一组拦截器“递归”的完成网络请求中各个环节的处理。1.1、Interceptors责任链在getResponseWithInter

OkHttp网络请求流程经过前面多篇博客的铺垫,终于来了。让我们继续深入OkHttp源码,了解OkHttp网络请求的实现。在OkHttp的基本用法一文中我们了解到,拿到Call实例后,有两种网络请求:异步和同步。1、异步请求从Call的enqueue(responseCallback: Callback)方法开始:从OkHttpClient调用newCall(Request)方法获取Call实例,

OkHttp之Headers请求头前面看了请求Request和请求体RequestBody类实现源码,最后我们来看看请求头Headers。Headers是HTTP请求和相应的头部所包含的信息:MIME、日期、缓存、Cookie等。1、HeadersOkHttp设计的Headers类结构如下,让我们仔细看看其中的实现。1.1、核心成员Headers类内部并没有用两个数组分别维护请求头中的name和v

OkHttp之RequestBody请求体继OkHttp之Request请求一文,看完Request类,内部存储了和请求相关的数据,并没有什么复杂的逻辑。接着看看RequestBody类内部实现是怎样的。1、RequestBodyRequestBody是抽象类。1.1、两个抽象方法有两个抽象方法contentType()和writeTo(sink: BufferedSink)。需要具体的Reque

OkHttp之Request请求了解了OkHttp的基本用法,不急着分析OkHttp网络请求流程。先熟悉一遍源码,了解请求相关的几个类:请求Request、请求体RequestBody以及请求头Headers。阅读源码,一方面搞懂内部实现,遇到坑可以知道在哪。另一方面,吸取代码设计经验,设计模式不是纸上谈兵。1、Request先看Request源码,熟悉Request请求的设计。1.1、请求核心成
OkHttp的基本用法看完Google官方的网络通信库Volley,再继续学习Android开发中大名鼎鼎的网络请求框架:OkHttp。深入学习一个优秀的框架之前,先了解它的基本用法,由浅入深,逐步探索。本篇简要介绍一下OkHttp的使用,关于拦截器详见OkHttp拦截器Interceptor。1、OkHttpOkHttp是Square公司开源的网络请求框架,Android开发中另一个网络请求框架

Volley网络图片加载控件NetworkImageView在Volley图片加载ImageLoader一文中了解了使用ImageLoader进行图片加载的原理。还有更简单的网络图片加载,在Volley加载网络图片一文第3节提到NetworkImageView,继承自ImageView通过简短的200行代码,结合ImageLoader实现一个简单易用的图片加载控件。让我们通过源码了解Network

Volley图片加载ImageLoader在Volley加载网络图片中了解到使用ImageLoader进行加载图片,本文来看看ImageLoader源码如何结合RequestQueue实现网络图片加载的。源码分两部分看,一部分是从ImageLoader的get(...)方法开启图片加载请求,另一部分是NetworkDispatcher的网络请求结果回调。1、图片加载请求总体的请求逻辑如下,大部分代
Volley加载网络图片通过前面几篇关于Volley的博客,对Volley框架算是比较熟悉了。Volley虽然小巧,应对Android开发中常见的图片加载也是丝毫不逊于专门的图片加载框架(不能显示动态GIF、不支持生命周期管理、不能动态监听网络状态 ... ...)。Volley图片加载三兄弟:ImageRequest、ImageLoader、NetworkImageView。1、ImageReq

添加三方依赖的正确方式项目开发中需要使用很多三方库:Json解析使用Gson、图片加载使用Glide、网络访问使用OkHttp和Retrofit等等等。各种各样的开源库,五花八门的版本号,到底用哪个呢?项目中选择合适的三方库很重要。不要再把三方库下载下来拷贝到项目的libs目录下集成,老的项目可能还在用这种方式,项目更新三方库有点麻烦。直接用Maven远程仓库(公开或私有仓库)集成更方便。1、Ma

Volley之CacheDispatcher缓存在源码解析Volley请求队列RequestQueue一文最后,我们看了向请求队列添加Request网络请求的逻辑。如果请求开启缓存,那么会先将请求放到缓存队列中处理,缓存队列没有或者缓存过期的话再放到网络请求队列中处理并返回。1、CacheDispatcherCacheDispatcher也是继承自Thread。1.1、CacheDispatche

Volley之网络请求NetworkDispatcher在源码解析Volley请求队列RequestQueue一文最后,我们捋了向请求队列添加Request网络请求的逻辑:对于没有缓存需求的网络请求,sendRequestOverNetwork(Request<T> request)放入网络请求队列mNetworkQueue中等待处理:1、NetworkDispatcherNetworkDispa

Volley请求队列RequestQueueVolley将所有的网络请求通过RequestQueue内部进行管理,这是一个很内敛的设计思想,先从Volley的入口开始颇析。1、创建请求队列通过Volley进行网络请求,首先得获取这个网络请求队列RequestQueue。1.1、通过Volley newRequestQueue(...)方法在Volley使用介绍一文中,我们通过Volley类提供的静
Volley使用介绍安卓开发要对几个网络开源库非常熟悉:OkHttp、Volley、Retrofit。先从轻量级的网络请求库Volley学习,它的源码不到1万行,麻雀虽小五脏俱全。1、Volley介绍Volley是Google官方2013年发布的Android平台的网络通信库。该开源框架目前看来已经非常稳定,大部分代码提交记录定格在3年前(不是没人维护了,而是不需要再修改)。GitHub:goog