| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
ChrHester
7年前发布

Android 开发中常用的开源项目及比较 - 网络篇

   <p>由于xUtils公共的库它不是只支持http,还支持orm、bitmap、view注解,本着专一原则我们项目中就不会选择xUtils, 这里我们就不介绍它了。</p>    <p>下面我们就分别说说Retrofit、okhttp、android-async-http、还要volley。</p>    <h2><strong>Volley</strong></h2>    <p>Google提供网络通信库,在2013年Google I/O大会上推出了一个新的网络通信框架,官方是这样说的:</p>    <p>Easy, Fast Networking for Android</p>    <p>特点:</p>    <ul>     <li> <p>自动调度网络请求</p> </li>     <li> <p>多线程并发网络连接、请求优先级</p> </li>     <li> <p>请求Cache和内存管理</p> </li>     <li> <p>扩展性强 如:支持自定义重连等</p> </li>     <li> <p>支持请求取消</p> </li>     <li> <p>强大的Debug、tracing</p> </li>    </ul>    <p>缺点:</p>    <ul>     <li> <p>对于大数据量的网络操作糟糕, 如:下载文件等</p> </li>    </ul>    <p>下图是它的工作原理图</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/92ba9403304ce41e79caaa65cfea6fa2.jpg"></p>    <p>它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,如list加载等等</p>    <p>项目地址: https://android.googlesource.com/platform/frameworks/volley</p>    <p>技术文档:</p>    <p>http://commondatastorage.googleapis.com/io-2013/presentations/110%20-%20Volley-%20Easy,%20Fast%20Networking%20for%20Android.pdf</p>    <h2><strong>okhttp</strong></h2>    <p>square 开源的 http协议 工具类,Android系统API 19以后HttpURLConnection内部实现就是使用了okhttp</p>    <p>特点:</p>    <ul>     <li> <p>支持Http/2,Http/2主要支持 SPDY( http://zh.wikipedia.org/wiki/SPDY )协议。SPDY 协议是 Google 开发的基于传输控制协议的应用层协议,通过压缩,多路复用(一个 TCP 链接传送网页和图片等资源)和优先级来缩短加载时间。</p> </li>     <li> <p>如果 Http/2 不可用,利用连接池减少请求延迟</p> </li>     <li> <p>Gzip 压缩</p> </li>     <li> <p>Response 缓存减少不必要的请求</p> </li>     <li> <p>支持请求取消</p> </li>    </ul>    <p>缺点:</p>    <p>在服务器不支持speedy的情况下没有特别明显的优化</p>    <p>工作原理图</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/32e4e6682c0a986b731c991d808175b6.jpg"></p>    <p>项目地址:</p>    <p>https://github.com/square/okhttp</p>    <h2><strong>Retrofit</strong></h2>    <p>Square 开源RESTFUL API库, Retrofit的跟Volley是一个套路,但解耦的更彻底。同时自己内部对OkHtttp客户端做了封装, 用Retrofit+OkHttp基本上已经可以处理任何业务场景了。</p>    <p>特点:</p>    <ul>     <li> <p>简化了网络请求流程,支持注解请求</p> </li>     <li> <p>支持多种Converter、还可以自定义, 如:Gson、Jackson、protobuf、xml</p> </li>     <li> <p>可以配合RxJava使用</p> </li>    </ul>    <p>缺点:</p>    <p>看不出缺点是最大的缺点</p>    <p>下面的工作原理图是网友Stay的作品,如下:</p>    <p style="text-align: center;"><img src="https://simg.open-open.com/show/5c62934844e145eadaf7753be282098f.jpg"></p>    <p>项目地址:</p>    <p>https://github.com/square/retrofit</p>    <h2><strong>android-async-http</strong></h2>    <p>由于HttpClient在Android API 23后就不能使用了, android-async-http内部实现了HttpClient。 这个库我也没有用过, 只是看过一些介绍,下面摘抄了一下官网的说明仅供参考</p>    <ul>     <li> <p>Make asynchronous HTTP requests, handle responses in anonymous callbacks</p> </li>     <li> <p>HTTP requests happen outside the UI thread</p> </li>     <li> <p>Requests use a threadpool to cap concurrent resource usage</p> </li>     <li> <p>GET/POST params builder (RequestParams)</p> </li>     <li> <p>Multipart file uploads with no additional third party libraries</p> </li>     <li> <p>Tiny size overhead to your application, only 60kb for everything</p> </li>     <li> <p>Automatic smart request retries optimized for spotty mobile connections</p> </li>     <li> <p>Automatic gzip response decoding support for super-fast requests</p> </li>     <li> <p>Optional built-in response parsing into JSON (JsonHttpResponseHandler)</p> </li>     <li> <p>Optional persistent cookie store, saves cookies into your app’s SharedPreferences</p> </li>    </ul>    <p>项目地址: https://github.com/loopj/android-async-http</p>    <h2><strong>总结</strong></h2>    <p>网络框架就介绍这么多吧, 以后还有合适的再做更新吧, 希望大家使用愉快!</p>    <p> </p>    <p>来自:http://mp.weixin.qq.com/s?__biz=MzAwOTY0MTc3OA==&mid=2650253330&idx=1&sn=c3aa516fc915f82da78e81ee31f3502e#rd</p>    <p> </p>    
 本文由用户 ChrHester 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1476930728678.html
安卓开发 开源 Android开发 移动开发