Android App开发之网络请求框架总结笔记,收藏吧
今天这篇文章,主要总结了一下Android App开发的网络框架请求,适合面试之前看看复习复习~赶紧收藏吧~
本篇文章,只简单介绍一下每种请求的区别,主要以文字描述为主,不涉及代码,如果想具体了解用法,可以去github上搜素具体的使用教程~
网络请求
Anroid原生网络请
HttpURLConnention: 谷歌原生提供的用于网络请求的轻量级方案,支持数据压缩;缺点是封装性差,使用起来麻烦,尤其是做multipart提交的时候需要自己拼接符合http协议的请求参数;另外HttpURLConnection在2.3版本以下有bug,具体是关闭流的时候会导致线程池的线程无法停止;2.3以上修复了该bug。
HttpClient: 谷歌原生内置的apache的HttpClient请求库,功能多样,缺点是API设计繁多,使用起来麻烦,随着OkHttp越来越流行,谷歌决定在android4.4以后的版本,废除HttpClient,而且HttpURLConnection的底层实现也采用的OkHttp;
第三方网络请求库
Retrofit: Square公司出品,基于OkHttp封装,增加了动态代理和数据解析的封装;支持多种数据格式的解析如json,xml等;由于使用了动态代理,所以更安全,api风格和OkHttp相似;
OkHttp: Square公司出品,底层封装Socket实现,特点是多个网络请求重用一个Socket长连接,并且使用连接池来缓存连接,所以网络延时低,请求高效稳定;支持http2和SPDY协议;使用OkIO进行读写操作,由于OkIO底层使用NIO,所以读写更高效;
Ion: 也是优秀的网络库,底层同样是封装Socket使用,重用长连接,维护连接池;支持多种数据格式的解析返回;Api设计简洁好用;但是流行程度没有OkHttp高。
Volley:谷歌官方在2012年开发者大会推出的网络库,特点是适合处理请求频繁但是数据量小的场景。本身对文件上传支持比较差,需要自己编写代码。底层实现是在2.3之前使用HttpClient,2.3之后使用HttpURLConnection;同时具有载入图片的功能,图片载入模块没有实现图片的内存缓存,需要我们自己实现;
XUtil: 快速开发综合框架,拥有ViewInject,DB,网络请求,图片载入4个模块。网络模块底层封装的HttpURLConnection,知名度没有OkHttp高。
放松一下,今天看到了一个有意思的图片,作为程序员的我们,您会选择什么呢?
开心一下
最近会更新很多,关于面试的笔记,大家可以持续关注~