简述Android高效轻量网络框架

本文介绍了一种基于ThreadPoolExecutor+Runnable+Handler的网络请求框架设计方案,旨在解决AsyncTask框架的不足,尤其是在弱网环境下提高响应速度,并通过缓存管理和Mock服务减少重复请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    有一种很好使的网络框架封装:基于AsyncTask。不过这个框架有个巨大的缺陷:不能立刻马上取消task

那么,在2g或者网络差的时候,进行页面切换后,就有可能造成线程池task拥堵,无法及时响应当前的task

众观当前主流的框架:okhttp, retrofit,volley。都是轻量化设计。(三者差异就不讨论了,不是主题)

都有那么点ThreadPoolExecutor+Runnable+Handler的意思。

倘若再+Cookie+Cache+Mock+实体化,又或者再+Annotation就有这三个开源框架的形神了。

 

ThreadPoolExecutor+Runnable+Handler

先看一张图


1.列举所有后端API

2.RequestNode封装这些API

3.activity获取RemoteService的实例(Singleton),将RequestCallbackRequestParameter作为参数传递给RemoteServiceinvoke函数

4.invoke函数,以RequestCallbackRequestParameter作为参数传递给RequestManager创建HttpRequest

5.HttpRequest传递给ThreadPoolExecutor处理

6.结果用ResponseType封装,通过HandlerResquestCallback返回传输结果。

 

减少Request次数


基本上这图很清楚了。不说了。

还得说一下APINode

得包含4部分

ExpiresCacheManager中使用。

通过CacheManager去获取缓存结果时,Expires>0下,对比timestamp,过期则重新获取,否则返回缓存结果。

当然,请求时将Expires设置为0就强制更新了。

 

MockService模拟后端结果


大数据量请求的情况

需要用gzip封装一下。没了。其他还好。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值