【黑马程序员】浅谈阿里非侵入式热修复方案Sophix精选.doc

【黑马程序员】浅谈阿里非侵入式热修复方案Sophix精选.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【黑马程序员】浅谈阿里非侵入式热修复方案Sophix精选

【黑马程序员】浅谈阿里非侵入式热修复方案Sophix 引言 2017年6月11日,手淘技术团队联合阿里云正式发布了史上首个非侵入式移动热更新解决方案——Sophix。在咱们黑马android课程体系中,在讲到热修复的时候,咱们所讲的也是阿里提供的AndFix(/alibaba/AndFix)。 接下来说下关于AndFix以及现在推出的新的解决方案,两者之间的区别是什么呢?AndFix底层固定结构的替换方案稳定性不好,其使用范围也存在着诸多限制,虽然可以通过改造代码绕过限制来达到相同的修复目的,但这种方式既不优雅也不方便。而更大的问题是,Andfix只提供了代码层面的修复,对于资源和so的修复都还未能实现。而Sophix能做到类修复、资源修复、so文件修复, 补丁即时生效,不需要应用重启。最重要的是Sophix简单! 废话不多说,咱们开始正式进入正题, Sophix( /product/hotfix)主要的应用场景是修复线上bug以及快速轻量升级。 创建应用 先在管理控制台创建应用。 创建成功后MHub控制台可以查看到对应App。返回Hotfix控制台,刷新页面后可以看到对应的Hotfix App。 接入应用 首先在咱们项目主module目录下的gradle文件中添加maven仓库地址以及配置sophix依赖。 配置完成后开始进行gradle编译。编译完成后,咱们则开始进入写代码得阶段。 配置权限 配置相关meta信息 至于写法,非常简单,只需要注意几个参数所对应得意思就ok。 关于初始化,需要注意的是initialize的调用应该尽可能的早,必须在程序入口的最开始进行(即Application的onCreate方法)SDK初始化操作,否则极有可能导致崩溃。而查询服务器是否有可用补丁的操作可以在后面的任意地方。 到此为止,其实操作得初始化已经ok了~ 至于补丁得修补,其实sophix已经帮咱们搞定了。 生成补丁 首先大家需要明白一个概念,什么叫做热修复。大家可以简单理解为,在用户不知情的情况下偷偷的把程序得漏洞给修复或者添加新的功能。而要想在用户不知情的前提下实现,首先就是不能引导用户安装apk。所以咱们只能通过其他得方式来实现,而这里就是通过补丁包得形式来搞定。只要程序检测到有补丁存在就加载补丁中得内容从而来实现上述需求。 补丁生成工具下载地址: Mac版本打包工具地址: /SophixPatchTool_macos.zip Windows版本打包工具地址: /SophixPatchTool_windows.zip Linux版本打包工具地址: /SophixPatchTool_linux.zip 第一件事,咱们需要提供两个版本得apk,一个是存在bug的apk,一个是修复bug后打包得apk。其中有BUG的简称A,修复过后的简称B。注意:A,B都是经过签名得apk。 那既然B是正常得apk。那么咱们就得参照A和B去比对,然后生成出来一个补丁,而A能和补丁文件能够实现B的结果。 这里有三个选项,官方也有给出详细得解释: 1. 强制冷启动:勾选的话强制生成补丁包为需要冷启动才能修复的格式。默认不选的话,工具会根据代码变更情况自动选择即时热替换或者冷启动修复。 2. 不比较资源:打补丁时不比较资源的变化。 3. 不比较SO库:打补丁时不比较SO库的变化。 接下来点击设置来配置打包得相关签名信息。 接下来点击GO!按钮然后工具就会帮咱们在桌面生成了一个叫做sophix-patch.jar的文件。 到此为止,咱们已经提供了A(有问题),B(修复问题)和补丁文件。 配合调试工具进行测试 调试工具用于patch正式发布前的调试环节 当然,咱们这里就以本地补丁进行测试咯~。 调试工具地址: /hotfix_debug_tool-release.apk 下载后安装,界面如下: 使用步骤如下: 输入程序包名并且点击连接应用,在下方查看结果。 如果结果显示成功则输入补丁位于手机具体路径。然后点击本地应用补丁。这里我将补丁放在/sdcard/目录下 如果大家看到这个结果,那说明咱们其实已经实现了,但是要注意的是,需要先关闭A然后再重新打开该应用。 Ok。咱们的流程到此走完了,但是大家要注意,在实际开发得情况下,生成补丁得时候应该是存在阿里云管理后台的。然后在目标应用上去创建对应版本然后将对应版本得补丁包上传上去。 至于管理后台的配置,官方有提供非常详细得文档,大家可以去了解下。 /document_detail/51434.html?spm=5176.doc27781.6.552.SSnLII 黑马程序员济南中心 编著

文档评论(0)

tazhiq2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档