volley okhttp universal-image-loader对比分析
2015-07-07 17:54
471 查看
一、Volley
下载地址: https://github.com/smanikandan14/Volley-demo
特点:Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
功能点:
JSON,图像等的异步下载
网络请求的排序(scheduling)
网络请求的优先级处理
缓存
多级别取消请求
和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
架构设计:
Volley使用了线程池来作为基础结构,主要分为主线程,cache线程和network线程。主线程和cache线程都只有一个,而NetworkDispatcher线程可以有多个,这样能解决比并行问题
优点:volley简化了网络通信这块的开发,特别是针对数据量不大但网络通信频繁,对JSON对象,图片加载这两块进行了很好的封装和支持,
缺点:对大数据(large payloads ),流媒体,这些case不能很好的支持,还需要使用原始的方法,比如Download Manager等。
http://lzyblog.com/page/2/
/article/1546769.html
http://yanmingming.sinaapp.com/
/article/1914718.html
二. Okhttp square开源的http工具类
项目地址:https://github.com/square/okhttp
文档介绍:http://square.github.io/okhttp/
特点:(1) 支持SPDY(http://zh.wikipedia.org/wiki/SPDY)协议。SPDY协议是Google开发的基于传输控制协议的应用层协议,通过压缩,多路复用(一个TCP链接传送网页和图片等资源) 参考:http://zh.wikipedia.org/wiki/SPDY
(2) 如果SPDY不可用,利用连接池减少请求延迟
(3) Gzip压缩
(4) Response缓存减少不必要的请求
http://www.tuicool.com/articles/3INNz2
http://www.trinea.cn/android/android-http-api-compare/
/article/3446569.html
三.Universal-image-loader
http://www.cnblogs.com/osmondy/p/3266023.html
http://codekk.com/open-source-project-analysis/detail/Android/huxian99/Android%20Universal%20Image%20Loader%20%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90
四.EventBus分析
EventBus主要特点
1. 事件订阅函数不是基于注解(Annotation)的,而是基于命名约定的,在Android 4.0之前的版本中,注解解析起来比较慢 , 事件响应函数默认以“onEvent”开始,可以在EventBus中修改这个值,但是不推荐这么干
2. 事件响应有更多的线程选择
EventBus可以向不同的线程中发布事件,在ThreadMode 枚举中定义了4个线程,只需要在事件响应函数名称“onEvent”后面添加对应的线程类型名称,则还事件响应函数就会在对应的线程中执行,比如事件函数“onEventAsync”就会在另外一个异步线程中执行,ThreadMode定义的4个线程类型如下:
PostThread:事件响应函数和事件发布在同一线程中执行。这个是默认值,这样可以避免线程切换。
MainThread:事件响应函数会在Android应用的主线程(大部分情况下都是UI线程)中执行。
BackgroundThread:事件响应函数会在一个后台线程中执行。如果事件发布函数不是在主线程中,则会立即在事件发布线程中执行响应函数。如果事件发布函数在主线程中,EventBus则会在唯一的一个后台线程中按照顺序来执行所有的后台事件响应函数。
http://www.trinea.cn/android/eventbus-source-analysis/
五.Dagger 源码解析
http://codekk.com/open-source-project-analysis/detail/Android/%E6%89%94%E7%89%A9%E7%BA%BF/Dagger%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90
下载地址: https://github.com/smanikandan14/Volley-demo
特点:Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮。
功能点:
JSON,图像等的异步下载
网络请求的排序(scheduling)
网络请求的优先级处理
缓存
多级别取消请求
和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
架构设计:
Volley使用了线程池来作为基础结构,主要分为主线程,cache线程和network线程。主线程和cache线程都只有一个,而NetworkDispatcher线程可以有多个,这样能解决比并行问题
优点:volley简化了网络通信这块的开发,特别是针对数据量不大但网络通信频繁,对JSON对象,图片加载这两块进行了很好的封装和支持,
缺点:对大数据(large payloads ),流媒体,这些case不能很好的支持,还需要使用原始的方法,比如Download Manager等。
http://lzyblog.com/page/2/
/article/1546769.html
http://yanmingming.sinaapp.com/
/article/1914718.html
二. Okhttp square开源的http工具类
项目地址:https://github.com/square/okhttp
文档介绍:http://square.github.io/okhttp/
特点:(1) 支持SPDY(http://zh.wikipedia.org/wiki/SPDY)协议。SPDY协议是Google开发的基于传输控制协议的应用层协议,通过压缩,多路复用(一个TCP链接传送网页和图片等资源) 参考:http://zh.wikipedia.org/wiki/SPDY
(2) 如果SPDY不可用,利用连接池减少请求延迟
(3) Gzip压缩
(4) Response缓存减少不必要的请求
http://www.tuicool.com/articles/3INNz2
http://www.trinea.cn/android/android-http-api-compare/
/article/3446569.html
三.Universal-image-loader
http://www.cnblogs.com/osmondy/p/3266023.html
http://codekk.com/open-source-project-analysis/detail/Android/huxian99/Android%20Universal%20Image%20Loader%20%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90
四.EventBus分析
EventBus主要特点
1. 事件订阅函数不是基于注解(Annotation)的,而是基于命名约定的,在Android 4.0之前的版本中,注解解析起来比较慢 , 事件响应函数默认以“onEvent”开始,可以在EventBus中修改这个值,但是不推荐这么干
2. 事件响应有更多的线程选择
EventBus可以向不同的线程中发布事件,在ThreadMode 枚举中定义了4个线程,只需要在事件响应函数名称“onEvent”后面添加对应的线程类型名称,则还事件响应函数就会在对应的线程中执行,比如事件函数“onEventAsync”就会在另外一个异步线程中执行,ThreadMode定义的4个线程类型如下:
PostThread:事件响应函数和事件发布在同一线程中执行。这个是默认值,这样可以避免线程切换。
MainThread:事件响应函数会在Android应用的主线程(大部分情况下都是UI线程)中执行。
BackgroundThread:事件响应函数会在一个后台线程中执行。如果事件发布函数不是在主线程中,则会立即在事件发布线程中执行响应函数。如果事件发布函数在主线程中,EventBus则会在唯一的一个后台线程中按照顺序来执行所有的后台事件响应函数。
http://www.trinea.cn/android/eventbus-source-analysis/
五.Dagger 源码解析
http://codekk.com/open-source-project-analysis/detail/Android/%E6%89%94%E7%89%A9%E7%BA%BF/Dagger%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90
相关文章推荐
- iOS开发网络篇—数据缓存
- VMware虚拟机上网络连接类型(Bridged、Host-only、NAT)的三种模式
- HttpServlet详解
- Java网络编程
- 网络数据包收发流程(一):从驱动到协议栈
- 网络协议之ipv6
- http协议分析工具【转】
- unix网络编程-第3,4章套接字编程
- 减少HTTP请求之合并图片详解(大型网站优化技术)
- 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)
- 一次完整的网络通讯
- iOS开发网络篇—NSURLConnection基本使用
- nginx+tomcat 架构 HttpServletRequest.getScheme()获取正确的协议
- 黑苹果驱动之家 http://it360.org.cn
- 浅论Android网络请求库——android-async-http(转)
- HTTP协议的URL介绍
- 史上最详细的ifcfg-eth0配置详解
- Android Tool Code --- HttpDownloader from URL
- Python httplib学习
- PHP+win+tomcat+mysql+httpd环境搭建记录1