android热修复平台架构方案
来源:互联网 发布:刷单平台 php源码 编辑:程序博客网 时间:2024/06/02 05:25
这篇文章是基于Android更新平台架构方案,为了实现app问题快速解决,小功能迅速更新。在实现更新平台后,在其基础上添加了热修复模块。
热修复基于阿里的andfix实现,在原更新平台上添加新功能模块来实现。
1、系统结构
(1)整体结构
保持不变
(2)WebConsole结构
WebConsole添加热修复模块:
选择应用,上传热修复包并设定版本。
2、 服务端流程
(1)在WebConsole选择应用,上传热修复包并设定版本。将应用及版本信息和文件路径保存至DB,将热修复包保存至FS。
(2)客户端请求Server,传入客户端的包名、版本等信息。Server根据应用和版本在DB中查询热修复包路径返回。
流程比较简单,先验证请求,通过再跟进版本查询热修复包路径返回即可。
验证请求:主要验证客户端的请求参数。首先验证参数齐全切不为空,否则为无效请求;然后通过包名和签名SHA1(忽略大小写) 判断是否为官方应用,非官方应用不允许更新,返回非官方错误码。
3、交互协议
Request:
{
"appKey":"xxx"
"pkgName": "com.xxx.xxx",
"versionCode": 1,
"signedSHA1": "xx:xx:xx:xx:xx"
}
其中:
appkey是唯一标示,用于区分不同的更新,比如同一个app的测试和正式包,可以将appKey分别设置“xxx”“xxx-测试”,这样就可以各自进行各自的更新,互不影响。
signedSHA1的校验注意忽略大小写;
Response:
{
"msgCode": 1,
"msg": "已是最新",
"data": {
"pkgName": "com.xxx.xxx",
"signedSHA1": "xx:xx:xx:xx:xx",
"versionCode": 2,
"fileSize": 123143,
"md5": "xxxxxxx",
"patchUrl": "http://www.xxx.xxx/xx.apk"
}
}
其中patchUrl就是热修复包的地址。
msgCode-msg:
0-此版本有热修复包
1-此版本无热修复包
2-热修复包请求失败,请重试。
3-非官方应用,请卸载后到官网下载安装。
4、客户端流程
(1)非官方应用:弹出不可关闭的提示弹窗,提示用户卸载当前应用,去官网下载官方版本。
(2)下载校验:校验文件的大小、md5,保证文件的合法性正确性。如果校验失败则删除已下载文件。
- android热修复平台架构方案
- android 热修复方案
- Android 热修复方案分析
- Android 热修复方案小结
- Android APP 热修复方案
- Android热修复方案比较
- Android App 线上热修复方案
- Android App 线上热修复方案
- Android App 线上热修复方案
- Android App 线上热修复方案
- Android App 线上热修复方案
- Android热修复方案—AndFix
- Android App 线上热修复方案Xposed
- Android热修复方案--sophix简单使用
- 干货满满,Android热修复方案介绍
- 各种热修复方案对比热修复
- 热修复系列之一----Android 热修复原理篇及几大方案比较
- Android更新平台架构方案
- 关于websocket的学习两个Demo
- Android用户界面_布局
- VC进制转换(二进制-十进制-十六进制)
- MySQL通配符过滤数据
- mybatis增删改
- android热修复平台架构方案
- oracle 还原数据库 imp
- AFNetWorking
- 多线程编程10例问题(3)
- ERROR server: 192.168.20.175:22122, response status 2 != 0
- Java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the
- Python_两种导入模块的方法异同
- CodeForces 831A-Unimodal Array
- TEST