文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android高级笔记

2022-06-06 14:07

关注

一、OKHttp

Ok 支持 同步形式(阻塞式)一个接一个的 一个任务完成,完成下一个

异步形式(接口回调)在当前线程有新建了一个线程,同时去进行

(1)OK get 异步请求
①获取ok对象
②获取request对象
③获取call对象
④call执行请求

(2)ok post异步请求
① 获取ok对象
②创建请求体
③获取request对象
④获取call对象
⑤call执行请求
(3)请求体
① string Request。create(type,"")
②stream(流) new RequestBody()
③form FromBody.builder().build();
④file

(4)请求头,缓存,超时
请求头; request.head() request.addHeader();
缓存; okHttp.cache(new Cache(file,time))
超时; oktimeout();

response.body().string() 只能调用一次

二,retrofit2

实质上是okhttp完成,而Retrrfit仅负责网络请求接口的封装

使用步骤:
1.定义类接口
2.实例化Retfoit
3.通过Retrofit实例创建接口服务对象
4.接口服务对象调用接口中的方法,获取call对象
5.call对象执行请求

2,常用注解
(1)请求方式
get
post
(2)参数
field
fieldMap
query
queryMap
(3)请求头
FormUrlEncoded
Header:头
headers:方法
(4)请求路径
path
url
(5)请求体
body
3,OkHttp和Retorfit

Okhttp:
OKHttp是一款高效的HTTP库,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势。OkHttp存在以下的特点:
① 支持HTTP2/SPDY 
② socket自动选择最好路线,并支持自动重连 
③ 拥有自动维护的socket连接池,减少握手次数 
④ 拥有队列线程池,轻松写并发 
⑤ 拥有Interceptors轻松处理请求与响应(比如透明GZIP压缩,LOGGING) 
⑥ 基于Headers的缓存策略
Retrofit:
Retrofit与okhttp共同出自于Square公司,retrofit就是对okhttp做了一层封装。把网络请求都交给给了Okhttp,我们只需要通过简单的配置就能使用retrofit来进行网络请求了。Retrofit框架存在的优势:
① Retrofit使用注解方式,大大简化了我们的URL拼写形式,而且注解含义一目了然,简单易懂;
② Retrofit使用简单,结构层次分明,每一步都能清晰的表达出之所以要使用的寓意;
③ Retrofit支持同步和异步执行,使得请求变得异常简单,只要调用enqueue/execute即可完成;
④ Retrofit更大自由度的支持我们自定义的业务逻辑,如自定义Converters。
⑤ Retrofit支持多种文件解析(Gson,Json,XML,Protobuf)
⑥ Retrofit支持RxJava
## DDL数据定义语言

用于创建、修改、和删除数据库内的数据结构,如:

1.创建和删除数据库(CREATE DATABASE || DROP DATABASE);

2.创建、修改、重命名、删除表(CREATE TABLE || ALTER TABLE|| RENAME TABLE||DROP TABLE);

3.创建和删除索引(CREATEINDEX || DROP INDEX)

DML数据操作语言

修改数据库中的数据,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)

DCL数据控制语言

用于对数据库的访问,如:1:给用户授予访问权限(GRANT);2:取消用户访问权限(REMOKE)

DQL数据查询语言

从数据库中的一个或多个表中查询数据(SELECT)

三,GreenDao使用
GreenDao配置文档

1.在project级别下 dependencies里
配置 classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’ // add plugin

2.在module级别下配置build.gradle

配置到build.gradle顶部
apply plugin: 'org.greenrobot.greendao' // apply plugin 步骤3
//配置到android模块下
greendao {
    //数据库版本号,升级时修改
    schemaVersion 1
    //生成的DAO,DaoMaster和DaoSession的包路径。默认与表实体所在的包路径相同
    daoPackage 'com.example.greendaodemo.db'
    //生成源文件的路径。默认源文件目录是在build目录中的(build/generated/source/greendao)
   // targetGenDir 'src/main/java'
}
implementation 'org.greenrobot:greendao:3.2.2' // add library
implementation 'org.greenrobot:greendao-generator:3.2.2'

3.编译

4.创建 bean对象,添加注解标签(@Entity @Id)

5.编译 make+project

数据库升级;
(1)复制MigrationHelper到项目,主要通过创建一个临时表,将旧表的数据迁移到新的表中
(2)新建一个类,继承DaoMaster.DerOpenHelper,重写 onUpgeradeDatabase db,int oldVersion,int neVersion()方法,在该方法中使用MigrationHelper进行数据库升级以及数据迁移

然后使用MyOPenHelper替代DapMaster.DerOpenHelper来进行创建数据库等操作
(3)在表实体中,调整其中的变量(表字段),一般就是新增/删除/修改字段,将原本自动生成的构造方法以及set/get方法删除,重写bulide–Make project进行生成

(4)修改Module下build.gradle中数据库的版本号schemaVersion ,递增加1,最后运行app

6.收藏项目
(1)添加依赖 权限
(2)配置GreenDao 创建工具类DbHelper
(3)实现TVF
(4)实现HomeFragment网络列表,包含retrofit使用,点击事件,插入数据
(5)实现CollectionFragment 包含查询数据 viewPager结合Fragment懒加载

四,Rxjava

Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎,RxJava2是非常好用的一个异步链式库.

RxAndroid是RxJava的一个针对Android平台的扩展,主要用于 Android 开发.

本文主要基于Rxjava 2.0

总结:RxJava 是一个 基于事件流、实现异步操作的库

作用

实现异步操作

类似于 Android中的 AsyncTask 、Handler作用

特点

由于 RxJava的使用方式是:基于事件流的链式调用,所以使得 RxJava:

逻辑简洁

实现优雅

使用简单

更重要的是,随着程序逻辑的复杂性提高,它依然能够保持简洁 & 优雅

4.Rxjava原理;

Rxjava是一个基于事件流、实现异步操作的库,类似于Android中的AsyncTask,Handler的作用。Rxjava是一种扩展的观察者模式,整个模式中有4个角色:

被观察者(Observable),用来产生事件。
观察者(Observer),用来接收事件,并给出响应动作。
订阅(Subscribe),用来连接被观察者和观察者。
事件(Event),作为被观察者和观察者沟通的载体。
Rxjava的执行流程,被观察者(Observable)通过订阅(Subscribe)按顺序发送事件给观察者(Observer),观察者(Observer)按顺序接收事件和作出对应的响应动作。

潇染~ 原创文章 10获赞 0访问量 153 关注 私信 展开阅读全文
作者:潇染~


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯