我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android高级笔记

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android高级笔记

一、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 'class="lazy" data-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

Android高级笔记

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android高级笔记

一、OKHttp Ok 支持 同步形式(阻塞式)一个接一个的 一个任务完成,完成下一个 异步形式(接口回调)在当前线程有新建了一个线程,同时去进行 (1)OK get 异步请求 ①获取ok对象 ②获取request对象 ③获取call对象
2022-06-06

Oracle数据库高级学习笔记

学习Oracle数据库高级知识点笔记 Oracle 数据库高级Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。优点:数据安全性强,稳定性强1. 合并查询在实际开发过程中,为了合并多个
Oracle数据库高级学习笔记
2014-08-24

Android-Jetpack笔记-DataBinding

DataBinding即数据绑定,可以实现数据和UI的双向绑定。数据改变时,驱动UI刷新;操作UI时,也可以同步给数据。通常在开发界面时,总有findViewById的重复工作,DataBinding可以免去这些操作。同时,DataBind
2022-06-06

Android学习笔记

LinearLayoutCompat 线性布局 android:orientation=“vertical” 指定布局内控件排列方式为 垂直排列 android:layout_width=“match_parent” android:la
2022-06-06

Android开发笔记之Intent初级学习教程

本文讲述了Android开发笔记之Intent初级学习教程。分享给大家供大家参考,具体如下: 项目创建步骤: New Android Project-> Project name:Intent Build Target:Android 2.
2022-06-06

Android高级渲染,画笔渲染通过paint.setShader

1. 基础了解:    Android高级渲染,图层渲染渲染:ShaderBitmapShader        图形渲染LinearGradient   线性渲染RadialGradient    环形渲染SweepGradient  
2022-06-06

Android学习笔记(二十):高级UI组件----通用组件(滚动视图ScrollView)

通用组件(滚动视图ScrollView) 滚动视图 当窗体当中的内容比较多,一屏幕显示不下时,超出的部分就不能被用户看到。可以添加一个滚动条,当用户上下拖动屏幕时,就会显示出一个滚动条,屏幕中的内容也会随着用户的拖动而上下滚动,这样就可以显
2022-06-06

Android的activity学习笔记

一、什么是activity Activity 是用户接口程序,原则上它会提供给用户一个交互式的接口功能。它是 android 应用程序的基本功能单元。Activity 本身是没有界面的。所以activity类创建了一个窗口,开发人员可
2022-06-06

Android笔记之:onConfigurationChanged详解

从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求在AndroidManifest.xml申明Activity的广告SDK都会要求加上注明这么一句属性: 代码如下:android:config
2022-06-06

Android P Media源码笔记

以前跟Android Meida部分源码,做了细致的笔记,贴出来说不定会有帮助呢。 MediaSession使用参考这篇文章:MediaSession框架全解析跟踪的工程路径:\android_9\aosp\packages\apps\Ca
2022-06-06

Android学习笔记之Toast

使用统一标准化的Toast Toast.makeText(Context context, CharSequence text, int duration).show(); /* android.widget.Toast context:
2022-06-06

Android学习笔记之Service

一个Service是App的一个组件,没有任何的UI,可以长时间的在后台无限期运行。可以在主线程之外的单独的线程中执行,也可以在应用程序组件(如活动)中进行管理。例如音乐播放器,可以让音乐在后台进行播放。 Service的两种形式 Star
2022-06-06

Android 2020/2/18 笔记整理

学习路线安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。 主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。 Android操作系统最初由Andy Rubin开发(2003年),主
2022-06-06

Android学习笔记之Dialog Notification

对话框通知是一种可以与用户进行交互的通知形式,会使当前的活动失焦。 AlertDialog(警告对话框) 用于创建警告对话框。一个警告对话框最多可以包含三个按钮(和/或)一个包含复选框或单选按钮的可选项列表。 使用AlertDialog.B
2022-06-06

笔记本怎么升级win11

这篇文章主要介绍了笔记本怎么升级win11的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇笔记本怎么升级win11文章都会有所收获,下面我们一起来看看吧。方法: 1、首先我们需要确认自己的笔记本配置是否满足win
2023-07-01

Android课堂笔记(八)菜单

一.菜单 1.创建菜单 菜单是 UI 的重要组成部分,由一组命令组成,这些命令可在设备上通过按钮、按键或手势访问Android 为您提供以下三种类型的菜单: 选项菜单        Options Menu上下文菜单    Context
2022-06-06

Android学习笔记之Shared Preference

如果没有特殊要求,我们可以使用Android提供的框架来创建系统样式的Preference Screen,在其内部可以包含PreferenceCategory和Preference元素的任意组合。建立Preference
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录