简述Android高效轻量网络框架

    有一种很好使的网络框架封装:基于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封装一下。没了。其他还好。。。

猜你喜欢

转载自blog.csdn.net/wangxueming/article/details/72924788
今日推荐