Android美团热更新

前言

在Android studio 2.2.2上没弄成功,今天换成2.3.1后成功啦

<!--需要热补的包名或者类名,这些包名下的所有类都被会插入代码-->
    <!--这个配置项是各个APP需要自行配置,就是你们App里面你们自己代码的包名,
    这些包名下的类会被Robust插入代码,没有被Robust插入代码的类Robust是无法修复的-->
 <packname name="hotfixPackage">
        <name>com.demo.evan.myrobustdemo</name>
    </packname>
<!--补丁的包名,请保持和类PatchManipulateImp中fetchPatchList方法中设置的补丁类名保持一致( setPatchesInfoImplClassFullName("com.meituan.robust.patch.PatchesInfoImpl")),
    各个App可以独立定制,需要确保的是setPatchesInfoImplClassFullName设置的包名是如下的配置项,类名必须是:PatchesInfoImpl-->
    <patchPackname name="patchPackname">
        <name>com.demo.evan.myrobustdemo</name>
    </patchPackname>
  • xml中设置读写权限,(测试时是在targetSdkVersion=21测试的,实际开发中可能在21以上,需要申请动态权限,美团demo中有一个申请动态权限,可以参考)
  • 打正式包的配置
signingConfigs {
        release {
            storeFile file('robustTest.jks')
            storePassword 'dsl_305'
            keyAlias 'robusttest'
            keyPassword 'dsl_305'
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
  • 在app的build.gradle中开启apply plugin: 'robust' ,在命令行输入打包命令
    gradlew clean assembleRelease --stacktrace --no-daemon
    打包成功后,安装app,并在app目录下新建文件夹robust,将生成的mapping.txt文件以及app/build/outputs/robust/methodsMap.robust文件拷贝到这里
    修改代码,
在改动的方法上面添加@Modify注解或者在修改的方法里面调用RobustModify.modify()(针对Lambda表达式),
新增的方法和字段使用@Add注解

,修改后关闭apply plugin: 'robust' ,开启apply plugin: 'auto-patch-plugin'后,再次打包,
如果打包成功,终端会出现auto patch end successfully这样的提示,在cmd中,输入命令将补丁包复制到sd卡
adb push /Users/Evan/Desktop/code/robust/app/build/outputs/robust/patch.jar /sdcard/robust/patch.jar

  • 在app中,点击加载补丁,成功的话,会回调onPatchApplied方法,并且 result=true,就大功告成啦
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容