Android 开发之Volley网络架构
2017-02-09 14:29
218 查看
版权声明:本文为博主原创文章,欢迎转载和分享,转载请标明出处!
转载请标明出处:http://blog.csdn.net/u011546655/article/details/50856133
在以前的开发过程中,开发app的时候,使用的东西可能包括:
1、Httpclient,HttpURLConnection
2、AsyncTask,AsyncTaskLoader
3、ImageLoader
4、Gson
而volley呢?是Google I/O在2013上,发布出来的一套用Android平台上的网络通信库,能够使用网络通信更快,更简单,更方便,更健壮,也就是他们的结合体。
1、在ListAdapter#getView()里开始图像的读取。
2、通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源
3、在AsyncTask#onPostExecute()里设置相应ImageView的属性。
4、或者说,我们处理图像的时候,使用ImageLoader做处理。
会考虑到listview滚动过快,可能导致有些网络请求返回的时候,早已经滚过了当时的位置,根本没必要显示在list里了
虽然我们可以通过创建内部类ViewHolder进行优化来保持url等来实现防止两次取得,但是那些已经没有必须要的数据,还是会浪费系统的各种资源。
对于listview的优化,在以前的博客中有提到,如果不了解,请参考:http://blog.csdn.net/u011546655/article/details/41827089
2、网络请求的排序
3、缓存的处理,代替了自己动手写,或者ImageLoader
4、多级别的取消求情
5、Activity结束时同时取消所有网络请求
(2)在项目中使用volley
1.创建
2.Url组建 这个是根据自己的需求组建url
3.创建StringRequest 参数:method请求方法 Url地址 lietener监听器
4.添加StringRequest到RequestQueue对象中
5.设置回调接口
(3)以上便完成了一个volley框架的使用,的确,看起来使用起来非常的简单,而且功能强大,很多东西都不用自己去考虑,就能够完成自己想要做的任何事情,对于开发者来首,实现非常的快。
这里翻译了下,重新绘制成了如下图片:
综合起来,比自己写的要好的多,也要健壮和简单的多,不过volley也是有缺点的,volley适合用户频繁的获取数据,对于大数据的处理,这样就差了很多很多。
当然也有许多好的框架开发比如:Xutils,OkHttp,Retrofit等等。
参考资料:
http://blog.csdn.net/t12x3456/article/details/9221611
转载请标明出处:http://blog.csdn.net/u011546655/article/details/50856133
一:volley 简介
究竟什么是volley呢?在以前的开发过程中,开发app的时候,使用的东西可能包括:
1、Httpclient,HttpURLConnection
2、AsyncTask,AsyncTaskLoader
3、ImageLoader
4、Gson
而volley呢?是Google I/O在2013上,发布出来的一套用Android平台上的网络通信库,能够使用网络通信更快,更简单,更方便,更健壮,也就是他们的结合体。
(1):volley的背景
比如以前从网上下载图片的步骤可能是这样的流程:
1、在ListAdapter#getView()里开始图像的读取。
2、通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源
3、在AsyncTask#onPostExecute()里设置相应ImageView的属性。
4、或者说,我们处理图像的时候,使用ImageLoader做处理。
比如:listview在做图片处理的时候。
会考虑到listview滚动过快,可能导致有些网络请求返回的时候,早已经滚过了当时的位置,根本没必要显示在list里了
解决方案:
虽然我们可以通过创建内部类ViewHolder进行优化来保持url等来实现防止两次取得,但是那些已经没有必须要的数据,还是会浪费系统的各种资源。
对于listview的优化,在以前的博客中有提到,如果不了解,请参考:http://blog.csdn.net/u011546655/article/details/41827089
(2)Volley提供的功能
1、Gson,图像等的异步下载,不用在去考虑图片下载的时候出现listview滚动过快,造成的没有必要的数据请求。2、网络请求的排序
3、缓存的处理,代替了自己动手写,或者ImageLoader
4、多级别的取消求情
5、Activity结束时同时取消所有网络请求
二:如何使用volley
(1)下载volley框架,导入到自己的项目中:sdk版本至少要在8以上(2)在项目中使用volley
1.创建
RequestQueue RequestQueue mQueue = Volley.newRequestQueue(context);
2.Url组建 这个是根据自己的需求组建url
3.创建StringRequest 参数:method请求方法 Url地址 lietener监听器
StringRequest request = new StringRequest(Method.POST, urls, new Listener<String>() { public void onResponse(String response) { result = SecuritUtil.aesBase64Decode(response); } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }){ @Override public byte[] getBody() throws AuthFailureError { } };
4.添加StringRequest到RequestQueue对象中
request.setRetryPolicy(new DefaultRetryPolicy(300*1000, 1, 1.0f)); mQueue.add(request);
5.设置回调接口
public interface CallBack{ void onSuccess(Object obj); void onFail(); void onError(Exception e); }
(3)以上便完成了一个volley框架的使用,的确,看起来使用起来非常的简单,而且功能强大,很多东西都不用自己去考虑,就能够完成自己想要做的任何事情,对于开发者来首,实现非常的快。
三:volley的设计
Volley使用了线程池来作为基础结构,主要分为主线程,cache线程和network线程。这里翻译了下,重新绘制成了如下图片:
四:总结
volley框架,其实也就是让我们在以前使用中的一些东西如:gson,httpclient,ImageLoader等框架的结合体.综合起来,比自己写的要好的多,也要健壮和简单的多,不过volley也是有缺点的,volley适合用户频繁的获取数据,对于大数据的处理,这样就差了很多很多。
当然也有许多好的框架开发比如:Xutils,OkHttp,Retrofit等等。
参考资料:
http://blog.csdn.net/t12x3456/article/details/9221611
相关文章推荐
- android开发(40) 初试 Volley - GoogleI02013上的“快速,简单的网络通讯库”
- Android应用开发:网络工具——Volley(一)
- Android开发利用Volley框架下载和缓存网络图片
- Android开发常用开源框架(架构程序)及Volley不再升级了
- Android开发:Google网络框架Volley的使用
- Android开发之搜芽项目的图片加载问题(使用Volley进行网络图片加载)
- Android网络编程之Volley开发笔记
- 使用Volley+OkHttp+Gson加速Android网络开发
- Android网络开发之Volley--Volley基本用法JsonObjectReques(二)
- Android框架之网络开发框架Volley
- Android应用开发:网络工具——Volley(二)
- Android开发使用Volley加载网络图片
- Android开发之Volley网络通信框架
- Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计
- Android应用开发:网络工具——Volley(一)
- Android应用开发:网络工具——Volley(一)
- Android网络架构之———OkHttp+Volley+Gson
- android开发(40) 初试 Volley - GoogleI02013上的“快速,简单的网络通讯库”
- Android开发笔记-使用Volley开源库进行Http网络请求(POST方式)
- 一起来开发Android的天气软件(三)——使用Volley实现网络通信