Android应用内升级

根据hyman老师的视频进行的实操,对碰到的问题进行整理归纳。
视频地址:
https://www.imooc.com/video/19998

应用内升级的必要性:

apk上架周期慢,无法回退
可以小规模实验(灰度)以及试错(新功能实验,稳定性检测)
可以快速收敛版本(新功能覆盖、严重bug修复)

app中存在的几种形式

用户启动时静默检测,提示更新(感觉这个用的最多)
用户手动在设置页,点击检测更新(以前公司用过这个)

实现流程

image.png

案例实现步骤

网络模块设计
1.考虑通过```接口隔离``具体实现
2.使用okhttp完成接口实现,实现get请求
这里之所以采用接口隔离原则,是因为技术更新太快,如果不封装的话,新技术到来时,替换成本太大了,所以还是要用接口隔离起来,替换起来方便没有风险。
安装apk以及做一些细节处理
用户下载过程中cancel,如果及时的取消请求、中断下载;
apk的完成性校验(md5)

设计到的适配工作

** 避免android存储卡操作**
使用应用内部的cache文件夹,避免涉及到存储卡
Android N FileProvider适配
应用安装,涉及到文件uri的传递 ,需要适配
Android O对应用安装进行的权限的限制
需要引入安装权限
Android P对http网络请求的约束
在Android P上,默认不允许直接使用http的请求,需要使用https,会给出解决方案,如果强制使用的话,会抛出异常,需要进行相关的适配才行。

推荐阅读更多精彩内容