美团热修复Robust的踩坑之旅-使用篇

  最近须要在项目中使用热修复框架,在这里以美团的Robust为主写一篇文章总结一下学习的过程。android

  一直认为要学习一个框架的原理,首先须要让他跑起来,从效果反推回去,这样更容易理解。  git

1、美团Robust的使用github

  首先咱们在编写代码前须要作以下准备框架

  配置文件读写权限,6.0以上须要手动获取工具

  

   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

 

  在project的gradle文件中编写以下代码学习

  

  在module的gradle文件中编写以下代码测试

  

  

  同时咱们将从github上下载的美团Robust的例子中的robuts.xml复制到咱们的项目中gradle

  将下面两个地方改成咱们的包名,其余地方不建议在新手测试的时候进行修改。ui

  

  

  同时要记得将App的混淆打开,缘由在后面会提到spa

  

    到目前为止,咱们能够开始代码方面的编写了

  首先给你们看一下目录结构

  

  首先咱们看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以上要手动开启读取写入权限。

  

  

  这样咱们就成功了。如果运行失败,建议去看一看打印出的异常,具体分析缘由。

2、小结

  在接下来的分析中,将会分析美团Robust的原理。

相关文章
相关标签/搜索