Java环境变量配置(Windows/Linux)
Windows设置全局变量右键【计算机】-【属性】-点击【高级系统设置】(以Win11为例,Win10及以下在左侧)选择【高级】选项卡,选择下方的【环境变量】;在系统变量(注意不是用户变量)中 新建/编辑 以下参数;
JAVA_HOME — %JDK路径%Path — %JAVA_HOME%\binCLASSPATH — .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
如果安装了多个JDK版本 可以专门设置该JDK的变量路径,例如:JAVA8_HOME — %JDK8路径%JAVA_HOME — %JAVA8_HOME%
命令行设置变量设置临时变量(临时在批处理/脚本中使用)123456@echo offset "JAVA_HOME" "%JAVA8_HOME%"set "PATH" "%JAVA_HOME%\bin"set "CLASSPATH" ".;%JAVA_HOME%\lib\dt.j ...
RxJava用法(2)
Rx背压问题:在异步情况中,被观察者发送事件的速率和观察者接收事件的速率不一样,会导致缓冲区溢&oom对策:背压策略(back pressure strategy)————控制事件流速原理:
反馈控制:被观察者根据观察者接收事件的能力发送事件
响应式拉取:根据观察者自身情况接收事件
缓冲区:对超出缓冲区的事件进行丢弃,覆盖,报错
具体使用:Flowable在flowable用法中,被观察者变成了Flowable类,观察者变成了Subscriber类,其他用法和规则不变
响应式拉取(控制观察者)123456789101112131415161718192021222324252627282930313233343536373839404142434445Flowable.create(new FlowableOnSubscribe<Integer>() { @Override public void subscribe(FlowableEmitter<Integer> emitter) throw ...
RxJava用法(1)
rxjava是一个异步框架,功能和handler类似,特点是链式调用,逻辑简单。
内容
观察者模式
rxjava异步使用
操作符介绍
rxjava背压
观察者模式java中的观察者模式,主要有三个关键词需要记住,被观察者(Observable),订阅(subscribe),观察者(Observer)。核心思想:被观察者和观察者通过订阅产生一种关系,当被观察者发生一些改变,通知观察者,观察者对应做出相应的回应。举例:小说是被观察者,读者是观察者,小说和读者之前通过subscribe产生订阅关系,小说更新了,通知读者去买新小说。
Rx异步使用创建被观察者(Observable)12345678910Observable<String> story = Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception ...
Glide用法
添加依赖和访问网络权限
123implementation 'com.github.bumptech.glide:glide:4.13.0'implementation 'com.github.bumptech.glide:gifdecoder:4.13.0'//glide gif解码器annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'
1<uses-permission android:name="android.permission.INTERNET" />
常用的方法加载图片到ImageView1Glide.with(Context context).load(Strint url).into(ImageView imageView);
各种形式的图片加载到ImageView123456789101112131415// 加载本地图片File file = new File(getExternalCacheDir ...
Retrofit用法
Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装
添加依赖12345implementation 'com.squareup.retrofit2:retrofit:2.9.0'//implementation 'com.squareup.retrofit2:converter-gson:2.9.0'//retrofit gson支持库implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'//retrofit rxJava支持库implementation 'com.google.code.gson:gson:2.8.9'//gson
创建接口Retrofit将 Http请求 抽象成 Java接口:采用 注解 描述网络请求参数 和配置网络请求参数
1234567891011public interface GetReques ...
关于MediaType
MediaType对象解析MediaType:决定浏览器将以什么形式、什么编码对资源进行解析Content-Type:也属于MediaType媒体类型,主要用于在请求头中指定资源的MediaType
MediaType对象包含了三种信息:type 、subtype以及charset比如 "text/x-markdown; charset=utf-8"
type值是text,表示是文本这一大类;
subtype是/后面的x-markdown,表示是文本这一大类下的markdown这一小类;
charset=utf-8 则表示采用UTF-8编码。
MediaType类型
类型
描述
text/html
HTML格式
text/plain
纯文本格式,空格转换为 “+” 加号,但不对特殊字符编码
text/html
HTML格式
text/plain
纯文本格式,空格转换为 “+” 加号,但不对特殊字符编码
text/xml
XML格式
text/x-markdown
Markdown格式
image/gif
gif图片格式
im ...
OkHttp用法
基本使用首先记得在build.gradle 和 配置文件分别加上依赖 和 网络权限
1implementation 'com.squareup.okhttp3:okhttp:4.8.1'
1<uses-permission android:name="android.permission.INTERNET"/>
OkHttp采用建造者模式设计,使用很方便
异步Get请求
构造Request对象;
new OkHttpClient;
通过前两步中的对象构建Call对象;
通过Call#enqueue(Callback)方法来提交异步请求;
1234567891011121314151617181920String url = "http://wwww.baidu.com";final Request request = new Request.Builder() .url(url) .get()//默认就是GET请求,可以不写 .build();//创建一个http客户端对 ...
EventBus用法
EventBus 简介EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,Gihub地址是:EventBus。它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。
三个角色
Event:事件,它可以是任意类型,EventBus会根据事件类型进行全局的通知。
Subscriber:事件订阅者,在EventBus 3.0之前我们必须定义以onEvent开头的那几个方法,分别是onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,而在3.0之后事件处理的方法名可以随意取,不过需要加上注解@subscribe,并且指定线程模型,默认是POSTING。
Publisher:事件的发布者,可以在任意线程里发布事件。一般情况下,使用EventBus.getDefault()就可以得到一个EventBus对象,然后再调用post(Object)方法即可。
四种线程模型EventBus3.0有四种线程模型,分别是:
POST ...
GreenDao用法
GreenDao 优点:
性能高,号称Android最快的关系型数据库
内存占用小
库文件比较小,小于100K,编译时间低,而且可以避免65K方法限制
支持数据库加密 greendao支持SQLCipher进行数据库加密
Sqlite采用SQLCipher数据库加密实战
简洁易用的API
GreenDao 3.0使用方式添加配置在project build.gradle 加入
12345678910111213buildscript { repositories { mavenCentral()//GreenDao仓库 其他源也可以 } dependencies { classpath "com.android.tools.build:gradle:4.0.1" //GreenDao classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'//GreenDao / ...
MySQL root用户解除限制
以Linux为例:
1234567$ mysql -u root -pEnter password:{password}mysql>use mysql;mysql>update user set host='%' where user='root';mysql>flush privileges;mysql>quit