Android 网络通信框架Volley简介
Android 网络通信框架Volley简介
TuTu342121244 发表于4年前
Android 网络通信框架Volley简介
  • 发表于 4年前
  • 阅读 293
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: android app 开发中涉及到的网络通信框架,个人搜集和整理

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

1 - Volley引入的原因

已下载图片为例:

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

  • 在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等

共有 人打赏支持
粉丝 0
博文 13
码字总数 5845
×
TuTu342121244
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: