一、OKHttp
1.OK get 异步请求
①获取ok对象
②获取request对象
③获取call对象
④call执行请求
2.ok post异步请求
①获取ok对象
②创建请求体
③获取request对象
④获取call对象
⑤call执行请求
3.请求体
①string:RequestBody.create(type,"");
②stream:new RequestBody()
③form:FormBody.builder().build();
④file
4.请求头、缓存、超时
请求头:reques.header() request.addHeader()
缓存:okHttpClient.cacha(new Cache(file,time))
超时:ok.timeout()
二、Retrofit
retrofit使用步骤
①创建接口服务类:baseURL和方法,添加依赖
②创建retrofit对象
③通过retrofit对象获取接口服务对象
④接口服务对象调用自己的方法
⑤通过call执行请求
//其他注解
1.@GET
Call get5(@Url() String url);
2.@GET
Call get6(@Url() String url,@Query("stage_id") String stage_id,@Query("limit") String limit,@Query("page") String page);
3.@GET("{dish_list}.php?stage_id=1&limit=20&page=1")
Call get7(@Path("dish_list") String dish_list);
4.@POST("dish_list.php")
@Headers("Content-Type:application/json")
Call post4(@Body RequestBody requestBody);
5.@POST
@Headers("Content-Type:application/json")
Call post5(@Url String url,@Body RequestBody requestBody);
6.@POST
Call post6(@Url String url,@Body RequestBody requestBody,@Header("Content-Type")String type);
三、数据库
SQL语句
①分类
②SQL语句
③查询、模糊查询
④排序
⑤聚合函数
⑥分组
四、 Greendao
Greendao配置
1.实体类
2.工程的Grid里面有两个地方需要配置
3.项目的Grid里面有三项
双检锁单例模式:得到表对象
获取整个App的上下文
使用Greendao实现增删改查
五.广播
1.自定义recerver继承BroadcastReceiver
2.获得广播对象
3.添加过滤器(IntentFilter intentFilter =new IntentFilter();)
4.注册广播(registerReceiver)
5.销毁onpuse
六.MVP
七、架构模式
架构模式有几类
MVC、MVP、MVP
MVC:Model 、View、Controller
MVP:Model、View、Presenter
MVP原理:用户触碰界面触发事件,View层把事件通知Presenter层,Presenter层通知Model层处理这个事件,Model层处理后把结果发送到Presenter层,Presenter层再通知View层,最后View层做出改变。
八、注解
Butterknife:通过注解的方式找资源
①添加依赖
②添加插件
③使用
EventBus:事件总线
①添加依赖
②注册、解注册Eventbus,接受事件的方法
③发送事件
注意
①普通事件粘性事件
②粘性事件:发送Eventbus.postAticky、接受方法注解中必须sticky=true
九.Glide
本地图片,网络图片
1.添加依赖:implementation 'com.github.bumptech.glide:glide:4.8.0'
添加网络权限:<uses-permission android:name="android.permission.INTERNET"/>
2.禁止图片变换dontTransform()
3.圆行图片
RequestOptions requestOptions =new RequestOptions();
requestOptions.circleCrop();
4.圆角图片
RoundedCorners roundedCorners =new RoundedCorners(8);
requestOptions.transform(roundedCorners);
5.图片的大小
requestOptions.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC);
requestOptions.override(100,100);
6.下载展示图片
'''
private void downlode() {
new Thread(new Runnable() {
@Override
public void run() {
FutureTarget fileFutureTarget = Glide.with(MainActivity.this)
.load(netUrl)
.downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
try {
file = fileFutureTarget.get();
Log.e("TAG","file:"+file.getAbsolutePath());
}catch (ExecutionException e) {
e.printStackTrace();
}catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
}
Glide.with(MainActivity.this).load(file).into(iv1);
'''
6.图片虚化
RequestOptions bitmapTransform = requestOptions.bitmapTransform(new BlurTransformation());
7.黑白化图片
'''
RequestOptions transform = requestOptions.bitmapTransform(new GrayscaleTransformation());
Glide.with(this) .asBitmap()//使图片禁止状态 .load(netUrl).apply(bitmapTransform).into(iv1);'''