一、OKHttp
OK get 异步请求
①获取ok对象
②获取request对象
③获取call对象
④call执行请求ok post异步请求
①获取ok对象
②创建请求体
③获取request对象
④获取call对象
⑤call执行请求请求体
①string:RequestBody.create(type,"");
②stream:new RequestBody()
③form:FormBody.builder().build();
④file请求头、缓存、超时
请求头:reques.header() request.addHeader()
缓存:okHttpClient.cacha(new Cache(file,time))
超时:ok.timeout()
OKHttp源码学习
二、Retrofit
retrofit使用步骤
①创建接口服务类:baseURL和方法,添加依赖
②创建retrofit对象
③通过retrofit对象获取接口服务对象
④接口服务对象调用自己的方法
⑤通过call执行请求常用注解
①请求方式
get
post
②参数
field
fieldMap
query
queryMap
③请求头
FormUrlEncoded
Header:头
headers:方法
④请求路劲
path
url
⑤请求体
bodyOKHttp和retrofit区别
retrofit源码学习
三、数据库
- SQL语句
①分类
②SQL语句
③查询、模糊查询
④排序
⑤聚合函数
⑥分组
四、 Greendao
- Greendao配置:123
- 双检锁单例模式:得到表对象
- 获取整个App的上下文
- 使用Greendao实现增删改查
- 数据库升级
①复制MigrationHelper到项目它主要是通过创建一个临时表,将旧表的数据迁移到新表中,大家可以去看下源码。
②新建一个类,继承DaoMaster.DevOpenHelper,重写onUpgrade(Database db, int oldVersion, int newVersion)方法,在该方法中使用MigrationHelper进行数据库升级以及数据迁移。
然后使用MyOpenHelper替代DaoMaster.DevOpenHelper来进行创建数据库等操作
③在表实体中,调整其中的变量(表字段),一般就是新增/删除/修改字段。
将原本自动生成的构造方法以及getter/setter方法删除,重新Build—>Make Project进行生成。
④修改Module下build.gradle中数据库的版本号schemaVersion ,递增加1即可,最后运行app - 收藏项目
①添加依赖、权限
②配置数据库123,提供全局上下文,创建数据库工具类
③TVF
④实现首页功能:retrofit实现网络请求、点击事件、插入数据
⑤实现收藏功能:查询数据库、删除数据、viewpager结合fragment实现懒加载
五、Rxjava
- Rxjava定义、优点、作用、三个概念、原理、事件、调度器
- Rxjava使用:基本使用、链式使用
- Rxjava结合retrofit实现网络请求
①定义接口服务的时候返回类型是Observable
②retrofit网络请求
③call请求替换为Observable订阅observer
④通过调度器控制网络请求、结果处理的线程 - Rxjava其他操作符
六、广播
七、架构模式
- 架构模式有几类
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
- Glide可以加载四种资源
网络地址、sdcard、本地资源、字节流 - 占位图
预占位图、错误占位图 - 缓存
硬盘缓存:总共五种,默认AutoMatic
内存缓存:默认有 - 指定图片的格式:asBitmap、asGif(必须放在with后边)
- 指定图片大小
- 下载图片
- 图形变换
圆形、圆角、三方
十、Fresco
- 使用
①添加依赖
②初始化配置:init
③创建布局、找控件
④控件设置url
⑤其他属性:圆形和圆角等
十一、Matrix和ColorMatrix
- 什么是Matrix
- Matrix功能
- ColorMatrix功能
十二、LRUCache
- 原理(*****):底层、顺序、LRU顺序操作、移除
- 通过案例学习entry顺序
- 通过demo掌握三级缓存的原理
①什么是三级缓存
②内存缓存工具类
③硬盘缓存工具类
十三、文件上传
- ok上传
- Retrofit上传
- HTTPURLCollection上传
- 相机上传
- 相册上传
十四、下载
- ok下载
- retrofit下载
- con上传
- 文件保存
- 安装
- 多线程断点续传下载
十五、视频播放
- 系统播放器:隐式跳转
- videoview
①创建布局
②获取MediaController对象
③设置MediaController
④设置路径并开始
⑤设置上一个下一个 - MediaPlayer+surfaceView
①创建布局surfaceView
②获取MediaPlayer对象
③surfaceview和绑定必须在界面渲染的时候处理,也就是在初始化处理
④mp设置资源、准备、开始 - 获取视频的第一帧
①获取MediaMetadataRetriever对象
②设置资源
③获取某一帧(四种模式)
十六、总复习
- greendao配置:123,收藏功能实现
- MVP:
- 导航页
- TVF:vp、tab、适配器、选择器
- RecyclerView使用:分割线、方向、多布局、点击事件、刷新
- 上传和下载、保存、安装、在服务中下载
- 广播、广播传值、bean序列化、传递Bean
- Rxjava实现倒计时
- 四种动画
- EventBus:普通用法、粘性事件用法
- WebView使用
- OK缓存拦截器使用
- sp保存url
- 菜单:侧滑菜单、选项菜单、上下文菜单
- Populwindown
- 通知