您的位置:首页 > 理论基础 > 计算机网络

Android 网络通信框架Volley简介

2014-04-21 00:00 811 查看
摘要: android app 开发中涉及到的网络通信框架,个人搜集和整理

网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask HTTPClient(Apache),Volley是Android平台上的网络通信库,Volley特别适合数据量不大但是通信频繁的apk 开发!

1 - Volley引入的原因

已下载图片为例:

网上下载图片的步骤可能是这样的流程:

7fe0

在ListAdapter#getView()里开始图像的读取。

通过AsyncTask等机制使用HttpURLConnection从服务器去的图片资源

在AsyncTask#onPostExecute()里设置相应ImageView的属性。

所以 Volley框架的优势在于,只需要一个函数即可搞定!

2 - Volley提供的功能

JSON,图像等的异步下载;

网络请求的排序(scheduling)

网络请求的优先级处理

缓存

多级别取消请求

和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)

3 - Volley 使用

首先Volley,从git库先克隆一个下来:

git clone https://android.googlesource.com/platform/frameworks/volley
然后编译为jar包,再在自己的工程里import进来

catche 的建立 demo

package jp.classmethod.android.sample.volley;import android.graphics.Bitmap;import android.support.v4.util.LruCache;import com.android.volley.toolbox.ImageLoader.ImageCache;public  class  BitmapCache  implements  ImageCache  {        private LruCache<String, Bitmap> mCache;        public  BitmapCache ()  {        int  maxSize  =  10  *  1024  *  1024 ;        mCache = new LruCache<String, Bitmap>(maxSize) {            @Override            protected int sizeOf(String key, Bitmap value) {                return value.getRowBytes() * value.getHeight();            }        };    }    @Override    public  Bitmap  getBitmap ( String  url )  {        return mCache.get(url);    }    @Override    public  void  putBitmap ( String  url ,  Bitmap  bitmap )  {        mCache.put(url, bitmap);    }}


4 - Volley 使用弊端

大数据(large payloads ),流媒体,这些case,还需要使用原始的方法,比如Download Manager等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息