数据存储和网络通信|青训营笔记

82 阅读2分钟

这是我参加青训营的第32天,今天我复习并整理了青训营课程中的数据存储和网络通信的课程笔记。

1.网络请求

网络请求是客户端和服务端之间的数据交互,网络请求在大型App里使用很频繁,为了更好的支持业务迭代,会进行网络请求的封装,现在的主流框架是以下四种:

HTTPURL:是java的标准类,什么都没封装,用起来比较原始,只有少量网络请求的功能性app会使用。

Volley:是Google开发的一个框架,但是现在已经停止更新。 Volley的Request和Response都是把数据方法放到byte数组里,不支持输入输出流,把数据放到数组中,如果大文件多了,数组就会非常大且多,消耗内存。只适合无需大文件下载的app。

OkHttp:是Square公司开源的针对 Java 和 Android 程序,封装的一个高性能 http 请求库。OKHttp 类似于 HttpUrlConnection, 是基于传输层实现应用层协议的网络框架。 而不止是一个 Http 请求应用的库。但是OKHttp一般不会单独使用,而是搭配Volley或者Retrofit使用。

Retrofit:是Square公司出品的默认基于 OkHttp 封装的一套 。Retrofit 的封装很强大,里面涉及到一堆的设计模式,你可以通过注解直接配置请求,你可以使用不同的 http 客户端,虽然默认是用 OKhttp ,可以使用不同 Json Converter 来序列化数据,同时提供对 RxJava 的支持,使用 Retrofit + OkHttp + RxJava 可以说是目前比较主流的一套框架。

同时,还有字节跳动自研的通用的网络请求封装框架TTNet,他基于Retrofit改造,具备了Retrofit所具有的优点:

  • 支持多个Http网络库的动态切换
  • 支持网络拦截配置:添加公共参数,动态切换协议及Host,动态选路等
  • 支持流解析,json序列化

2.数据存储

数据存储的开源框架主要有三类:

image.png

其中Room是比较主流的一种。