Android美团热更新

前言

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

  • 参考地址:http://blog.csdn.net/snailbaby_soko/article/details/69524380
    https://github.com/Meituan-Dianping/Robust/blob/master/README-zh.md
  • 步骤
    • 在项目中添加依赖
    • 将robust.xml拷贝到app目录下,并进行配置,主要是两个地方(热补包名和补丁包名)

    
 
        com.demo.evan.myrobustdemo
    

    
        com.demo.evan.myrobustdemo
    
  • 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,就大功告成啦

你可能感兴趣的:(Android美团热更新)