这是我参与「第四届青训营 」笔记创作活动的第4天
网络通信
Retrofit介绍
Retrofit是目前Android平台上,可以说是最热门的网络请求封装框架,是对OkHttp的一个封装
Retrofit的快速使用
- Retrofit 库的引入
- 创建 用于描述网络请求的 接口
- 使用 Retrofit 实例发起网络请求
Retrofit的使用介绍
- 在需要用到Retrofit接口的module中,新增依赖 (最新的版本可看GitHub github.com/square/retr…)
2. 创建用于描述网络请求的接口
注:
- 接口类名:可自定义,尽量和这类请求的含义相关
- 函数名:可自定义,需要能识别出该接口的作用,该interface里可以增加多个不同的函数
- @GET 注解:用于指定该接口的相对路径,并采用Get方法发起请求
- @Path 注解:需要外部调用时,传入一个uid,该uid会替换@GET注解里相对路径的{uid}
- 返回值Call:这里用ResponseBody,我们可以直接拿到请求的String内容如果要自动转为Model类,例如User.这里直接替换为User就好。
3. 发起网络请求
- 创建Retrofit实例
- 创建请求接口的实例,并获取到Call实例
- 调用call.enqueue进行异步请求
- 处理返回的数据
对比
- Retrofit
- TTNet
数据储存
数据库-框架对比
数据库: 相对来说,数据库的使用会比较复杂些,我们单独进行探索,下面是几个主流的数据库框架对比
Room原理介绍
- 核心
1.编译期,通过kapt处理@Dao、@Database注解,动态生成对应的实现类
2.底层使用Android提供的SupportSQLiteOpenHelper实现数据库的增删改查等操作 - kapt注册处理
Room在编译期,通过kapt处理@Dao和@Database注解,生成DAO和Database的实现类 AppDatabase --> AppDatabase Impl UserDao-->UserDao lmpl - AppDatebase_lmpl自动生成方法:
- 原理介绍: 3个核心的成员变量:
- _db
- _insertionAdapterOfUser
- _deletionAdapterOfUser
总结
今日学习总结
今天学习了Retrofit的使用方法,还有面对信息流内容应该做些什么。今天也是充实的一天。
注
图片均来自课程PPT。