近日爱奇艺将乐视告上了法庭并索赔500万元。因为乐视网运营的“乐视视频”公众号向用户推送标题为“和原版相比,《中国有嘻哈》简直就是中国小西瓜”的侵权文章。该文章末尾以“中国有嘻哈,不在《中国有嘻哈》”、“喜欢看的各位,你们接着看吧 《中国有黑幕》我是看不下去了”的指向性用词来作为文章的结语,对爱奇艺的节目进行商业诋毁。
本篇来自 牟仯 的投稿, 分享了阿里出品的最新热更新技术,希望对大家有所帮助!
牟仯 的博客地址:
http://www.jianshu.com/u/405f676a0576
上个月,阿里发布了旗下第三代的热修复:Sophix,在你阅读这篇文章之前,可以先看看这篇文章,相信你看完了会更加的有兴趣,阿里推出业界首个非侵入式热修复方案 Sophix,颠覆移动端传统更新流程:
http://zhuanlan.51cto.com/art/201706/542445.htm
我也是在集成使用tinker的时候发现了 Sophix,tinker 的傻瓜式应用虽说简单,但各种参数也麻烦,所以公司项目的客服端热更新,我想试一下Sophix。
好了,闲话不多说,我们来折腾折腾!
注册帐号&申请内测资格
去阿里云(https://www.aliyun.com)注册开发者帐号,注册成功后进入控制台,添加移动热修复服务,如图:
点击热修复服务后,会跳转到内测资格申请,一般来说,也就个把小时就能通过申请,如图:
具体的申请我就不做详细的教程了,申请成功后“移动热修复”就会如图添加到控制台里的导航栏里:
点击进入就可以创建app进行开发了,此处提醒一句,创建app后你要回到“移动热修复”的根界面,系统会自动根据你app同时创建 andrioid 和 IOS 两个app,进入app后面的管理才能看到 RSASECRET,如图:
之所以多说一句是因为我找这个 RSASECRET 找了半天都没找到在哪儿,还提交了个工单问是不是没有这个参数值了!创建应用还有什么不懂的,看阿里官方文档:
https://help.aliyun.com/document_detail/53238.html
前期准备工作准备的差不多,就可以环境集成了
环境集成
如图,在项目app下的 bulid.gradle 中添加maven仓库地址和坐标版本依赖
代码配置
首先,在 Manifest 中配置参数:
然后,重构 application 初始化 Sophix:
到此为止,所有的集成配置都完成了,可以开始测试了。
补丁生成
我们在主界面中写个 Textview,让他显示“我是首次运行的”,签名打出第一包,命名first,安装运行显示:
然后我们对代码进行改动,弹出一个Toast:
签名打出第二个包,命名 second,现在我们就需要用到阿里的补丁工具:
SophixPatchTool
https://help.aliyun.com/document_detail/53247.html
下载运行 SophixPatchTool.exe,添加包:
点击 设置 进行签名配置,补丁输出路径:
高级设置是对比范围,设置是否强制冷启动,可忽略。
点击 Go 开始打补丁,日志会详细打印出补丁情况,也可导出日志。
补丁打完后,在输出目录里会有一个 sophix-patch.jar,这个就是我们需要的补丁包。
上传发布
先添加版本号,成功后在版本号后的“查看详情中”上传补丁:
上传成功后,依然在“查看详情”中发布。阿里建议我们在正式发布之前,使用测试工具
hotfixdebug
http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/hotfix_debug_tool-release.apk
调试成功后再发布。发布完成后,重新启动App,运行如图:
成功搞定!
Sophix和Tinker,专业对比我还不好评价,只说两次不同集成给我的直观感受,总结如下:
优点:
Sophix 集成简单,不需要配置繁琐的各种参数。
Sophix 支持即时生效(事实上我第一次运行first版本后,直接就弹出了toast,而此时后台数据显示设备加载成功数为1,设备推送成功数为0)。
Sophix 支持 run instant,而 tinker 不支持。编译中不支持 run instant,速度大大降低!
Sophix 的补丁是基于阿里自身的 SophixPatchTool 打包生成,不是在AS中生成的,有种解耦的感觉,而且不需要备份太多的版本。
缺点:
每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。
如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。
欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号: