Sophix移动热修复之如何使用(二)

来源:互联网 发布:上高速官方版淘宝 编辑:程序博客网 时间:2024/05/20 14:27

上一篇Sophix移动热修复之在AndroidStudio项目集成SDK(一)讲了如何在项目中集成Sophix,

强烈建议大家阅读官方的快速接入文档(快速接入),文章中大部分内容都是从官方文档中摘抄出来的。


这篇讲解如何使用阿里云的控制台进行热更新(移动热修复),这里同样给出官方使用链接(使用说明)。

上一篇讲到本地创建了一个新的项目,并在MyApplication中接入了Sophix。


接下来我们看看怎么使用移动热修复


第一步:模拟旧包与新包

① 在MainActivity.java中,尝试写入一句话This is my first test(你想写啥就写啥)

    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_hotfix_test);        TextView tv = (TextView) findViewById(R.id.tv_sophix);        tv.setText("This is my first test");    }

② 打出一个签名包,保存好你的数字证书(即.jks密钥),假设这里将打出的包命名为 app-release-1.apk

    app-release-1.apk安装到手机上,界面应该显示为 This is my first test


③ 修改MainActivity.java中的代码,改为You are my sunshine(你想改成啥就改成啥)

    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_hotfix_test);        TextView tv = (TextView) findViewById(R.id.tv_sophix);        tv.setText("You are my sunshine");    }


④ 再打出一个签名包,假设这里将打出的包命名为 app-release-2.apk


第二步:生成补丁

① 下载打补丁工具SophixPatchTool (快速接入)



② 生成补丁(即生成patch)

打开下载好的SophixPatchTool,初始情况下显示为下面左图,点击高级显示为右图

 

  • 旧包:<必填> 选择基线包路径(有问题的APK)。这里选择app-release-1.apk的路径。
  • 新包:<必填> 选择新包路径(修复过该问题APK)。这里选择app-release-2.apk的路径。
  • 日志:打开日志输出窗口。
  • 高级:展开高级选项,如右图。
  • 设置:配置其他信息,如下图。
  • GO!:开始生成补丁。

 

补丁输出路径:必填,即之后要用的patch的路径,放置补丁的位置

Key Store Path:选填,即之前保存的数字证书,此处不填则不做签名

Key Store Passwoed:选填,数字证书的密码

Key Alias:选填,Key的别名

Key Password:选填,Key的密码

总之,此处应与之前打签名包的时候填写一致,点击确定,点击GO!生成补丁 (文件名为sophix-patch.jar保存好,下面要用哦~~~


第三步:上传补丁

① 添加版本



填写版本号时,版本号必须与用户App内的appVersion相同,如果不相同将导致补丁发布不成功。





②  上传补丁


点击上传补丁

上传完成之后会出现一个 等待发布  状态的补丁,点击查看详情,进入  补丁详情



③ 发布补丁


这里发布分为两种:灰度发布 和 全量发布

灰度发布模式,可以在控制台设置灰度设备数,客户端拉取补丁会消耗该设备数,达到灰度设备数后,灰度补丁自动置为停止状态。

设备数:指设备请求更新该补丁的次数,并不等于绝对设备数。

例如:1个设备请求了2次更新该补丁,则会消耗掉2的设备数。

灰度后可以根据自身需要停止本次灰度发布,停止后可以选择:

--重设灰度发布规则,新的规则中设备数必须大于之前的值。

--改为全量发布。

--回滚版本(如果存在历史版本)

全量发布模式,选择全量发布后,将对所有安装了当前应用版本(即之前创建应用时所填写的应用版本号)的设备推送该补丁。

与灰度发布类似,在全量发布会可以根据自身需要停止本次全量发布,停止发布后可以选择:

--继续全量发布。

--回滚版本(如果存在历史版本)


④(为方便,直接点击全量发布后)打开之前在手机上安装的app-release-1,看看此时界面是不是已经显示成You are my sunshine了呢~~~

注意:发布前请严格按照:扫码内测 => 灰度发布 =>全量发布的流程进行,以保证补丁包能够正常在所有Android版本的机型上生效。

为了保险起见,理论上应该对每个版本的android手机都测一遍是否生效会比较好。

不过,其实只需测试通过以下具有代表性的Android版本就基本没什么大问题了:4.0、4.4、5.1、7.0



链接:

多渠道打包如何生成补丁

官网关于补丁的诸多问题