昨天看了一天的Android Volley的网络请求库,对它有点了解了,同时也看了一下国内的框架xutils中的Http和Bitmap部分,发现大的思路都一样,只是具体的实现方式不一样.
Volley适合请求小数据,大一点的数据内存马上上去了.这和它的实现方式有关,它在加载的过程中没有设计进度更新的回调.模块化的设计思路,基本上都是以接口定义,所以扩展性比较好.
而xutils Http模块实现了获取字符串,下载文件,下载进度的更新,Bitmap模块使用了两级缓存,内存缓存和外部存储缓存. 但是框架设计上不是很完美,扩展性不够强.另外,使用到的HttpClient方式网络请求,这点不太好.Google推荐使用的是HttpUrlConnection方式.
另外,两者使用的网络请求队列的管理方式不一样.Volley使用RequestQueue管理所有的队列,开启N个线程不停循环从请求队列中获取请求,当没有请求线程并不会停止. 而xutils使用的是线程池,每个请求都会新建一个线程,由线程池管理这些线程. 我不知道哪种方式的最优化,但是我还是比较喜欢Volley的方式,感觉新建线程消耗的资源比较多.
具体的实现方式后面再补上吧~