DownOL 软件仓库– 软件下载,字节世界与新知

Android App开发之网络请求框架总结笔记,收藏吧

发表于:2024-05-04 作者:创始人
编辑最后更新 2024年05月04日,今天这篇文章,主要总结了一下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高。

放松一下,今天看到了一个有意思的图片,作为程序员的我们,您会选择什么呢?

开心一下

最近会更新很多,关于面试的笔记,大家可以持续关注~

2022-05-09 23:17:28
0