Android Studio集成热修复流程

今天应我的群员要求简单的介绍下集成阿里云Hotfix的热修复流程由于这是我的第一篇博客可能写的不太好或者不太详细请大家多多批评指正我会第一时间改正自我的问题,感觉写博客不只是给大家带来帮助还有助于自己的水平提升,以后有什么好的技术,我会持续给大家分享,话不多说开始步入正题吧!

1.首先我们进入到阿里云官网登陆账户选择下图中箭头所指热修复的产品

OU%{8Z%9WJ~X3BY1VRWWM02.png

2.创建应用

【登陆热修复控制台】 https://hotfix.console.aliyun.com/
点击右上角创建App,跳转到Mobile Hub App管理控制台,或者直接访问Mobile Hub控制台:https://mhub.console.aliyun.com/

  • 在MHub控制台点击右上角创建产品,填入产品名称、行业分类和描述


    image.png
  • 点击创建后,可以直接看到当前的产品列表


    image.png
  • 点击产品名字或者产品名称对应的管理链接进入产品的应用列表创建android/iOS应用


    image.png
  • 点击下图创建应用按钮,填写APP名称、端类型、packageName/bundleId 完成应用创建

  • 填写下图APP名称、端类型、packageName/bundleId 完成应用创建


    image.png
  • 创建完成后点击左侧服务列表选择移动热修复,进入移动热修复控制台


    image.png
  • APPID、 APPSECRET、RSA秘钥在App列表点击“管理”后,跳转到单个App管理页面,可以查看如下图


    image.png

3.快速集成

  • gradle远程仓库依赖, 打开Studio项目找到app的build.gradle文件,添加如下配置:
    添加maven仓库地址:


    image.png
  • 添加gradle坐标版本依赖:


    image.png
  • 在清单文件检查Sophix SDK使用到以下权限


    image.png
  • 在AndroidManifest.xml中间的application节点下添加如下配置并把下图中箭头所指appid appsercret RSA秘钥替换掉你自己的:


    image.png
  • 在Application.onCreate()的最开始进行SDK初始化操作,初始化之前不能用到其他自定义类,否则极有可能导致崩溃。


    image.png

接口说明

  • setContext(application): <必选> 传入入口Application即可
  • setAppVersion(appVersion): <必选> 传入应用的版本号
  • setSecretMetaData(idSecret, appSecret, rsaSecret): <可选>如果清单文件配置了appid RSA秘钥可以不写该方法
  • setEnableDebug(isEnabled): <可选> isEnabled默认为false, 是否调试模式, 调试模式下会输出日志以及不进行补丁签名校验. 线下调试此参数可以设置为true,

到这里客户端集成完毕了接下来就是开始打包补丁了

3.生成补丁

请先根据电脑的操作系统分别下载对应的补丁打包工具

-解压压缩包 Windows下运行SophixPatchTool.exe,macOS下运行SophixPatchTool.app,下图例句Mac为例:

主对话框

image.png
  • 旧包:<必填> 选择有问题的APK。
    新包:<必填> 修复过该问题APK。测试随便改一下自己能分清就行了哈!

  • 日志:打开日志输出窗口。

  • GO!:开始生成补丁。

  • 高级


    image.png
  • 强制冷启动:勾选的话强制生成补丁包为需要冷启动才能修复的格式。默认不选的话,工具会根据代码变更情况自动选择即时热替换或者冷启动修复。

  • 不比较资源:打补丁时不比较资源的变化。

  • 不比较SO库:打补丁时不比较SO库的变化。

  • 设置


    image.png
  • 补丁输出路径:<必填> 指定生成补丁之后补丁的存放位置,必须是已存在的目录。

  • Key Store Path:<选填>本地的签名文件的路径,不输入则不做签名。

  • Key Store Password:<选填>证书文件的密码。

  • Key Alias:<选填>Key的别名。

  • Key Passwrod:<选填>Key的密码。

  • AES Key:<选填>自定义aes秘钥, 必须是16位数字或字母的组合。必须与setAesKey中设置的秘钥一致。

好了接下来都配置好了就点击主窗口的Go开始生成补丁吧

  • 生成的补丁Patch.jar我们需要上传到控制台

  • 进度到我的控制台点击添加版本


    image.png
  • 当前版本一定等于你的gradle的版本偶不然不会检查拉取补丁


    image.png
  • 在版本详情页面,您可以上传刚生成的补丁文件


    image.png

注意上线发布前请先本地测试

4.加载补丁调试

  • 打开工具后如下图


    image.png
  • 输入“com.taobao.hotfix.demo”包名, 连接应用, 提示连接成功;

  • 点击上传扫描二维码按钮扫到刚刚上传补丁二维码

  • 扫描完成以后返回,输出扫描到的patch地址,向应用发出拉取patch的请求;

  • patch拉取和加载状态在输出台输出,当显示下载和加载成功,然后退出app清掉你的app进程查看,如果无意外就应该成功了

  • 然后成功就可以全量发布了,将对所有安装了当前应用版本(即之前创建应用时所填写的应用版本号)的设备推送该补丁。

至此安卓热修复Hotfix集成流程就彻底结束了,可能刚开始写有些地方讲的不太详细,可以及时反馈给我我会第一时间回复,也可以加入我的QQ913140889或者个人QQ群592739795,一起交流技术问题,多谢大家!

推荐阅读更多精彩内容