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

时间: 2024-08-09 18:45:26

android开发常用到的一些网络通信包(转)的相关文章

android 开发 常用到的一些网络通信包

心静志远 | 技术会被淘汰,但思想会一直永存(多思考,多总结,多分享) 无线开发一定少不了与服务端进行交互,这自然离不开使用类似于HttpClient的工具包来发送和接受HTTP请求.常用的有一些这些: 1. Apache 的 HttpClient(Android2.3之前使用) 2. Android 简化扩展版 HttpUrlConnection 3. Google 推出的 Volley(在Android2.3之前使用HttpClient,之后使用HttpUrlConnection) 4. G

[转载]Android开发常用调试技术记录

ANDROID 调试技术: 1)Ps 指令 ls –l /proc/27/ cat /proc/27/cmdline       #cmdline文件表示了这个进程所在的命令行. cat /proc/27/status      #status 文件表明了获知这个进程的相关信息. #stat包含更多信息,但较难读. cat /proc/27/task      #task 文件表明了进程信息. 2)vmstat 查看虚拟内存统计信息 3)top 统计CPU的消耗情况 4)dumpstat  du

Android开发常用流行开源框架记录

发掘了一些Android常用开源框架,记录并分享,希望能在开发当中帮到大家. 缓存: 名称:DiskLruCache 描述:Java实现基于LRU的硬盘缓存 源码地址(可能需要翻墙) 作者:guolin 相关博客:Android DiskLruCache完全解析,硬盘缓存的最佳方案 图片加载: Android-Universal-Image-Loader 描述:一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示.所以,如果你的程序里需要这个功能的话,那么不妨

Android开发常用工具类

来源于http://www.open-open.com/lib/view/open1416535785398.html 主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils. PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils. ParcelUtils.Rand

20个Android开发常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.S

最全Android开发常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括  HttpUtils.DownloadManagerPro.Safe.ijiami.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.S

android开发常用组件和第三方库(二)

TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending, github搜索:https://github.com/search 目录 UI UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送 完整项目 插件 出名框架 其他 好的文章 收集android上开源的酷炫的交互动

Android开发常用工具总结

目录: 什么是AIDL以及如何使用 获取总内存及可用内存 dp.px转换 程序的安装与卸载 根据URI获取真实路径 关闭开启网络 还原短信 横竖屏切换 获取mac地址 获取SD卡状态 获取状态栏和标题栏的高度 获取各种窗体高度 获取内外置存储卡路径 捕获Application全局异常 禁止Home键 开机启动 控制对话框位置 模拟器错误 挪动dialog的位置 屏幕适配 设置APN 调节屏幕亮度 重启 拍照.录音.录像 隐藏软键盘 隐藏以及显示软键盘以及不自动弹出键盘的方法 BitMap.Dra

android开发常用的网址

1 http://www.androiddevtools.cn/ 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等.