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

108 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第4天

网络通信

Retrofit介绍

Retrofit是目前Android平台上,可以说是最热门的网络请求封装框架,是对OkHttp的一个封装

Retrofit的快速使用

  • Retrofit 库的引入
  • 创建 用于描述网络请求的 接口
  • 使用 Retrofit 实例发起网络请求

Retrofit的使用介绍

  1. 在需要用到Retrofit接口的module中,新增依赖 (最新的版本可看GitHub github.com/square/retr…)

image.png 2. 创建用于描述网络请求的接口 注:

  • 接口类名:可自定义,尽量和这类请求的含义相关
  • 函数名:可自定义,需要能识别出该接口的作用,该interface里可以增加多个不同的函数
  • @GET 注解:用于指定该接口的相对路径,并采用Get方法发起请求
  • @Path 注解:需要外部调用时,传入一个uid,该uid会替换@GET注解里相对路径的{uid}
  • 返回值Call:这里用ResponseBody,我们可以直接拿到请求的String内容如果要自动转为Model类,例如User.这里直接替换为User就好。

image.png 3. 发起网络请求

  • 创建Retrofit实例
  • 创建请求接口的实例,并获取到Call实例
  • 调用call.enqueue进行异步请求
  • 处理返回的数据

image.png

对比

  • Retrofit

image.png

  • TTNet

image.png

数据储存

数据库-框架对比

数据库: 相对来说,数据库的使用会比较复杂些,我们单独进行探索,下面是几个主流的数据库框架对比

image.png

Room原理介绍

  • 核心
    1.编译期,通过kapt处理@Dao、@Database注解,动态生成对应的实现类
    2.底层使用Android提供的SupportSQLiteOpenHelper实现数据库的增删改查等操作
  • kapt注册处理
    Room在编译期,通过kapt处理@Dao和@Database注解,生成DAO和Database的实现类 AppDatabase --> AppDatabase Impl UserDao-->UserDao lmpl
  • AppDatebase_lmpl自动生成方法:

image.png

  • 原理介绍: 3个核心的成员变量:
  • _db
  • _insertionAdapterOfUser
  • _deletionAdapterOfUser

image.png

总结

image.png

今日学习总结

今天学习了Retrofit的使用方法,还有面对信息流内容应该做些什么。今天也是充实的一天。

图片均来自课程PPT。