面对一个项目,对于Android应用开发框架的选择,我想过三种方案:
1.使用Loader + HttpClient + GreenDao + Gson + Fragment,优点是可定制性强,由于使用Google家自己的Loader和LoaderManager,代码健壮性强。
缺点是整套代码学习成本较高,使用过程中样板代码较多,(比如每一个Request都需要产生一个新类)
2.Volley,作为Google在IO大会上得瑟过的一个网络库,其实不算什么新东西(2013 IO发布),使用较为简单,请求可以取消,可以提供优先级请求,看起来还是不错的。
3.Retrofit,一款为了使请求极度简单化的REST API Client,呼声也很高,使用门槛几乎是小白型。
如何选择呢?首先干掉1,因为对新人的学习成本确实太高,如果要快速开发一个项目,高学习成本是致命的,同时使用起来样板代码很多。
那么如何在Volley和Retrofit中选择呢?尽管网上有很多文章在介绍两个框架的使用方法,而对于其原理,特别是对比分析较少,如果你手里有一个项目,如何选择网络模块呢?
首先说明一下这两个网络框架在项目中的层次:
从上图可知,不管Volley还是Retrofit,它们都是对现有各种方案进行整合,并提供一个友好,快速开发的方案,在整合过程中,各个模块都可以自行定制 或者替换。比如反序列化的工作,再比如HttpClient。
而在本文我们将简略地来看一下Retrofit的源码部分。
注意,本文并不是使用Retrofit的帮助文档,建议先看Retrofit的文档和OkHttp的文档,这些对于理解余下部分很重要。
使用Retrofit发送一个请求
假设我们要从这个地址 http://www.easck.com/search.json?key=retrofit中获取如下Json返回:
{
"data": [
{
"title":"Retrofit使用简介",
"desc":"Retrofit是一款面向Android和Java的HttpClient",
"link":"http://www.easck.com/retrofit"
},
{
"title":"Retrofit使用简介",
"desc":"Retrofit是一款面向Android和Java的HttpClient",
"link":"http://www.easck.com/retrofit"
},
{
"title":"Retrofit使用简介",
"desc":"Retrofit是一款面向Android和Java的HttpClient",
"link":"http://www.easck.com/retrofit"
}
]
}











