zoukankan      html  css  js  c++  java
  • android 开发 常用到的一些网络通信包

    无线开发一定少不了与服务端进行交互,这自然离不开使用类似于HttpClient的工具包来发送和接受HTTP请求。常用的有一些这些:
    1. Apache 的 HttpClient(Android2.3之前使用)
    2. Android 简化扩展版 HttpUrlConnection
    3. Google 推出的 Volley(在Android2.3之前使用HttpClient,之后使用HttpUrlConnection)
    4. Git开源项目Okhttp (使用http+SPDY协议)
    5. Android-async-http
    6. Retrofit(默认使用Okhttp作为传输层)
    7. Android Query
    8. Android AsyncTask

    HttpClient 与 HttpUrlConnection对比:

    对于HttpClient 大家都比较熟悉,这里就不做多余阐述,为什么使用HttpUrlConnection呢?主要原因是因为HttpClient虽然稳定,但是太庞大了,在Android上不易做升级和扩展,所以才有了轻量级的HttpUrlConnection。HttpUrlConnection相比与HttpClient做的扩展点可以参考下面的博客。
    参考:
    http://blog.csdn.net/guolin_blog/article/details/12452307
    http://android-developers.blogspot.com/2011/09/androids-http-clients.html

    Volley中使用的也是HttpUrlConnection,那么Volley在HttpUrlConnection上有没有改进呢?还有待查阅相关资料。

    Android自带的AsyncTask:不推荐使用。

    弊端:
    1. 不支持环境改变;
    2. 不能取消网络请求;
    3. 没有简单的方法来做并发API调用;
    4. 每个时刻只能有一个AsyncTask任务可以运行;
    5. ancle()方法并不会起作用;
    6. Activity被销毁,还保持Activity的引用时,可能导致内存泄露;
    7. Activity reCreated时,可能导致AsyncTask的结果丢失;
    8. 串行或并行的不确定性,依赖API Level的不同而不同;
    AsyncTas阴暗的一面:http://bon-app-etit.blogspot.in/2013/04/the-dark-side-of-asynctask.html

    OkHttp、Volley、Retrofit三者对比:

    Volley的特点:
    1. Volley的优势在于处理小文件的http请求;
    2. 在Volley中也是可以使用Okhttp作为传输层;参考:https://plus.google.com/+JakeWharton/posts/eJJxhkTQ4yU
    3. Volley在处理高分辨率的图像压缩上有很好的支持;
    4. NetworkImageView在GC的使用模式上更加保守,在请求清理上也更加积极,networkimageview仅仅依赖于强大的内存引用,并当一个新请求是来自ImageView或ImageView离开屏幕时 会清理掉所有的请求数据。
    5. Volley比Retrofit在内存错误处理上要更好。
    Retrofit的特点:
    1. 使用REST API时非常方便;
    2. 传输层默认就使用OkHttp;
    3. 支持NIO;
    4. 拥有出色的API文档和社区支持
    5. 速度上比volley更快;
    OkHttp的特点:
    支持SPDY(请求头压缩、并行请求、强制SSL、服务端推送);

    三者的性能基线:
    其中Volley与Retrofit的对比,参考:http://instructure.github.io/blog/2013/12/09/volley-vs-retrofit/
    三者对比参考:http://stackoverflow.com/questions/16902716/comparison-of-android-networking-libraries-okhttp-retrofit-volley

  • 相关阅读:
    JS/JQuery下拉列表选中项的索引
    数据挖掘
    Sencha安装
    新的开始
    jquery multi scrollable 同步的问题
    dom4j
    rest
    spring 2
    spring framework3.0开发
    笔记Spring in action
  • 原文地址:https://www.cnblogs.com/itpepe/p/4756210.html
Copyright © 2011-2022 走看看