摘要:最近需要在项目中使用热修复框架,在这里以美团的为主写一篇文章总结一下学习的过程。这里我们可以将美团的类复制下来,稍微修改一下就可以了这里改为你的包名即可里面的代码很简单如下这里全部完成后我们可以开始生成了,这里要注意要生成带签名的。
最近需要在项目中使用热修复框架,在这里以美团的Robust为主写一篇文章总结一下学习的过程。
一直认为要学习一个框架的原理,首先需要让他跑起来,从效果反推回去,这样更容易理解。
一、美团Robust的使用
首先我们在编写代码前需要做如下准备
配置文件读写权限,6.0以上需要手动获取
在project的gradle文件中编写如下代码
在module的gradle文件中编写如下代码
同时我们将从github上下载的美团Robust的例子中的robuts.xml复制到我们的项目中
将下面两个地方改为我们的包名,其他地方不建议在新手测试的时候进行修改。
同时要记得将App的混淆打开,原因在后面会提到
到目前为止,我们可以开始代码方面的编写了
首先给大家看一下目录结构
首先我们看MainActivity的代码
界面很简单,一个TextView和两个Button,图片在后面
这里面重要的就是这个newPatchExecutor,传入了我们写的PatchManpulateImp,和一个回调。
我们接下来看PatchManpulateImp这个类。
这里我们可以将美团的PatchManpulateImp类复制下来,稍微修改一下就可以了
这里改为“你的包名”+PatchesInfoImpl即可
RobustActivity里面的代码很简单如下
这里全部完成后我们可以开始生成apk了,这里要注意要生成带签名的apk-release。
这里要注意的是生成带签名的release apk时,要同时勾选v1,v2。不然一会通过adb命令想genymotion安装App时会报错。
生成Apk后我们通过adb命令将apk安装到模拟器上,这里有的同学可能发现adb无法使用,需要在系统中设置环境变量,adb工具在androidsdk中自带,可以在sdk中去找。
接下来是补丁生成的流程
生成apk后我们可以看到Robust给我们生成了如下文件。新建一个与src同级的文件夹robust,将这两个文件复制过去,这里要注意我们在前面如果没配置混淆的话,这两个文件是不会出现的。
将我们前面的gradle文件打开,修改如下
然后修改RobustActivity中的代码如下
在terminal中调用如下命令
gradlew clean assembleRelease --stacktrace --no-daemon
生成补丁包
这里会build失败,不影响,有下列即为成功,我们可以看到这里已经生成了补丁包
现在我们把补丁包push到我们的模拟器中
这里面我们push jar包到我们在PatchManpulateImp中设置的地址的前一级
现在我们开始运行程序,先点击加载jar包,这里要注意Anroid6.0以上要手动开启读取写入权限。
这样我们就成功了。若是运行失败,建议去看一看打印出的异常,具体分析原因。
二、小结
在接下来的分析中,将会分析美团Robust的原理。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/3103.html
摘要:校验后进行判断。然后我们可以看到它执行到了我们修改代码的地方。目前为止,我认为的核心应该算是它自动插桩的那一部分,目前暂时不涉及了,下一篇将会了解一下热修复背后的动态加载。参考资料中热修复框架原理解析并将框架代码从闭源变成开源上篇热更新方案 上一篇主要分析了Robust的使用方法,这一篇就来总结一下Robust的源码分析。 我个人倾向于将Robust框架分为两个部分,自动插入代码和动态...
摘要:上传的时候,出现应用签名校验失败平常我们开发及测试的时候使用的是命令进行打包调试,其中运行时会使用下面的的签名及证书来打包。但是其无需安装,多入口快速打开是具备一定优势的。 前言 尝试一款新的开发框架的时候势必会遇见各种各样的问题。可能因为一开始不熟悉文档,导致配置错误,或是api使用错误。当然开发的时候我们也不能确认框架没有问题,是否存在bug。所以在某些出错的情况下,我们也许会不断...
摘要:上传的时候,出现应用签名校验失败平常我们开发及测试的时候使用的是命令进行打包调试,其中运行时会使用下面的的签名及证书来打包。但是其无需安装,多入口快速打开是具备一定优势的。 前言 尝试一款新的开发框架的时候势必会遇见各种各样的问题。可能因为一开始不熟悉文档,导致配置错误,或是api使用错误。当然开发的时候我们也不能确认框架没有问题,是否存在bug。所以在某些出错的情况下,我们也许会不断...
摘要:上传的时候,出现应用签名校验失败平常我们开发及测试的时候使用的是命令进行打包调试,其中运行时会使用下面的的签名及证书来打包。但是其无需安装,多入口快速打开是具备一定优势的。 前言 尝试一款新的开发框架的时候势必会遇见各种各样的问题。可能因为一开始不熟悉文档,导致配置错误,或是api使用错误。当然开发的时候我们也不能确认框架没有问题,是否存在bug。所以在某些出错的情况下,我们也许会不断...
摘要:上传的时候,出现应用签名校验失败平常我们开发及测试的时候使用的是命令进行打包调试,其中运行时会使用下面的的签名及证书来打包。但是其无需安装,多入口快速打开是具备一定优势的。 前言 尝试一款新的开发框架的时候势必会遇见各种各样的问题。可能因为一开始不熟悉文档,导致配置错误,或是api使用错误。当然开发的时候我们也不能确认框架没有问题,是否存在bug。所以在某些出错的情况下,我们也许会不断...
阅读 296·2023-04-25 17:26
阅读 839·2021-11-11 16:54
阅读 1383·2021-08-05 09:58
阅读 1819·2019-08-30 13:17
阅读 826·2019-08-28 17:52
阅读 946·2019-08-26 18:27
阅读 1296·2019-08-26 14:05
阅读 3433·2019-08-26 14:05