一、Build.gradle的配置

在工程的根build.gradle文件中添加
classpath 'cn.jiajixin.nuwa:gradle:1.2.2'
然后我们的build.gradle文件可能长这样:buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.2.3'classpath 'cn.jiajixin.nuwa:gradle:1.2.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files}
}在uliaobao的build.gradle中添加依赖:
apply plugin: "cn.jiajixin.nuwa"nuwa { //括号里是Application类以及要排除Application父类excludeClass = ['comcom/demo//Bean/AllClassif/yBean.class','com/demo/Bean/ReceiverBean.class','com/umeng/socialize/PlatformConfig.class','com/umeng/socialize/bean/SHARE_MEDIA.class','com/umeng/socialize/PlatformConfig$QQZone.class','com/umeng/socialize/PlatformConfig$Weixin.class','com/umeng/socialize/PlatformConfig$Douban.class','com/umeng/socialize/PlatformConfig$Laiwang.class','com/umeng/socialize/PlatformConfig$Yixin.class','com/umeng/socialize/PlatformConfig$SinaWeibo.class','com/umeng/socialize/PlatformConfig$Alipay.class','com/umeng/socialize/PlatformConfig$Renren.class','com/umeng/socialize/PlatformConfig$Googleplus.class','com/umeng/socialize/PlatformConfig$Facebook.class','com/umeng/socialize/PlatformConfig$Twitter.class','com/umeng/socialize/PlatformConfig$Tumblr.class','com/umeng/socialize/PlatformConfig$Plnterest.class','com/umeng/socialize/PlatformConfig$Pocket.class','com/umeng/socialize/PlatformConfig$Whatsapp.class','com/umeng/socialize/PlatformConfig$Email.class','com/umeng/socialize/PlatformConfig$Sms.class','com/umeng/socialize/PlatformConfig$Linkedin.class','com/umeng/socialize/PlatformConfig$Line.class','com/umeng/socialize/PlatformConfig$Flickr.class','com/umeng/socialize/PlatformConfig$Evernote.class','com/umeng/socialize/PlatformConfig$Foursquare.class','com/umeng/socialize/PlatformConfig$Ynote.class','com/umeng/socialize/PlatformConfig$Kakao.class','com/umeng/socialize/PlatformConfig$Instagram.class','com/umeng/socialize/PlatformConfig$GooglePlus.class','com/umeng/socialize/PlatformConfig$CustomPlatform.class','com/umeng/socialize/PlatformConfig$Pinterest.class']}然后我们的build.gradle文件可能长这样:
dependencies {compile fileTree(include: '*.jar', dir: 'libs')compile project(':pulltorefresh')compile 'com.android.support:recyclerview-v7:21.0.0'compile files('libs/okhttp-2.7.0.jar')compile files('libs/jpush-android-2.1.5.jar')compile files('libs/gson-1.6.jar')compile files('libs/aseo2.jar')compile files('libs/robotium-solo-5.2.1.jar')compile 'cn.jiajixin.nuwa:nuwa:1.0.0'
}

【备注】 这边有个坑,2.0版本的Android Studio为了支持Instant Run, 默认使用的Gradle Plugin是2.0.0-alpha2, 如果用此版本,会报错Error:Cannot get property ‘taskDependencies’ on null object,乖乖降低到1.2.3,木有此问题。

二、使用Nuwa

1.自定义Application,并且在Application类中添加如下代码:
@Override
public void onCreate() {super.onCreate();Nuwa.init(this);Nuwa.loadPatch(this, Environment.getExternalStorageDirectory().getAbsolutePath().concat("/patch.jar"));}2.运行并安装apk,会在 项目名称/build/outputs目录下自动生成一个叫nuwa的目录:

拷贝此目录到一个指定的目录,比如:
D:/nuwa
此apk目前是有bug的apk, 然后我们修复bug, 修复完毕后进入步骤3
3.在修复完bug的c ode base下执行如下命令:
gradlew clean nuwa(打包的渠道名)DebugPatch -P NuwaDir=D:/nuwa(拷贝后的nuwa的路径)gradlew clean nuwa BaiduSEM DebugPatch -P NuwaDir=D:/nuwa

注意:如果执行命令后出现下面的错误:

解决方式:配置AS的sdk的路径,如下图:

配置完后,再执行步骤3,即可。
然后在app/build/outputs/nuwa/debug/目录下会自动生成patch.jar文件:

此文件就是我们热部署的补丁文件

4.我们把补丁文件拷贝到sdcard根目录(这边只是为了测试整个hotfix流程, 自己的项目肯定是放在服务器上,我们通过代码自己去下载和存储)

5.代码混淆

———– Begin: 热补丁———-

-keep class cn.jiajixin.nuwa.* { ; }

———-End:热补丁———

热补丁Nuwa配置说明相关推荐

  1. 【腾讯bugly干货分享】微信Android热补丁实践演进之路

    为什么80%的码农都做不了架构师?>>>    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://bugly.qq.com/bbs/forum.ph ...

  2. Android各大热补丁方案分析和比较

    原文出处:http://blog.zhaiyifan.cn/2015/11/20/HotPatchCompare/ 最近开源界涌现了很多热补丁项目,但从方案上来说,主要包括Dexposed.AndFi ...

  3. java 热补丁_Android热补丁之AndFix原理解析

    背景 2015年下半年开源了很多Android热更新的项目,其中大部分是以QQ空间技术团队写的那篇文章为依据写出的基于multidex的热更新框架,包括Nuwa.HotFix.DroidFix等:还有 ...

  4. android热补丁作用,Android热修复之 - 阿里开源的热补丁

    这里就有一个概念那就AndFix.apatch补丁用来修复方法,接下来我们看看到底是怎么实现的. 1.2 生成apatch包 假如我们收到了用户上传的崩溃信息,我们改完需要修复的Bug,这个时候就会有 ...

  5. 各大热补丁方案分析和比较

    markzhai's home 首页 分类 关于 归档 标签 各大热补丁方案分析和比较 发表于 2015-11-20   |   分类于 android   |   11条评论 最近开源界涌现了很多热 ...

  6. (4.2.32)各大热补丁方案分析和比较

    选自: [腾讯bugly干货分享]微信Android热补丁实践演进之路 各大热补丁方案分析和比较 继插件化后,热补丁技术在2015年开始爆发,目前已经是非常热门的Android开发技术.其中比较著名的 ...

  7. Android热补丁的一点总结

    由于项目需要,我研究热补丁的实现是从12月上旬开始的,那时候我还是个对编译.ant.hudson只闻其名,对javassist.groovy闻所未闻的孩子:而现在,我已经是一个对ant.hudson一 ...

  8. Android热补丁动态修复技术

    Android热补丁动态修复技术(一):从Dex分包原理到热补丁 一.参考 博文:安卓App热补丁动态修复技术介绍--by QQ空间终端开发团队  博文:Android dex分包方案--by 猫的午 ...

  9. android 热更新nuwa

    简介 Nuwa是比较流行的一种Android热补丁方案的开源实现,它的特点是成功率高,实现简单.当然,热补丁的方案目前已经有很多了,AndFix, Dexposed, Tinker等,之所以要分析Nu ...

最新文章

  1. 【LOJ】#3098. 「SNOI2019」纸牌
  2. 【idea基础知识】project structure中没有web 或没有spring
  3. maven自定义webapp目录
  4. docker pull下载很慢_一文了解Docker容器技术的操作
  5. Numpy系列(三)常用random随机函数汇总
  6. 薰衣草紫色调人像lr/ps/luts预设
  7. FastDFS原理及入门
  8. Android GPS应用开发
  9. ps6人脸识别液化工具在哪_ps液化工具在哪?(Photoshop基础教程:液化工具)
  10. log公式如何用计算机,log计算-计算器怎么算log,如何使用科学计算器中的对数log...
  11. Java中求珠穆朗玛峰问题
  12. ResponseEntity和ResponseBody比较
  13. 无盘服务器固态硬盘做什么盘,哪个固态硬盘无盘服务器上最好?固态硬盘无盘服务器上详细介绍。...
  14. 播音主持如何运气发声?早上应该如何练声?
  15. 就业指导——自我介绍与个人简历
  16. 创建Vue项目报错:~/.vuerc may be outdated. Please delete it and re-run vue-cli in manual mode.
  17. php方面的调查报告,2015年JavaScript开发者调查报告:PHP是最好的编程语言!
  18. 鸿学金信股权众筹(天使轮融资)通告
  19. 共享计算机网络无法连接网络设置,局域网电脑无法共享文件夹、不能相互访问等问题解决方法汇总...
  20. 2021015979李庚奇实验二

热门文章

  1. 测试优先级 与 重点测试的讨论
  2. 极简化zxing二维码使用
  3. Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析
  4. 关于极限的有界性的理解
  5. 当字符数组遇见memset:赋值时踩上的雷
  6. 微信小程序wx.chooseMedia的坑,含“TypeError: Cannot read property ‘cloudFile‘ of undefined”错误原因
  7. 体验AI乐趣:基于AI Gallery的二分类猫狗图片分类小数据集自动学习
  8. 学习笔记 | 树的最近公共祖先
  9. JetBrains系列-插件
  10. 停电后wifi服务器无响应,停电后路由器连不上网(图文)