Android发布版本后如果出现了一点小bug怎么办....修改后重新发布吗?今天要讲的就是实现Android的热更新,只需将差异文件放到手机里就可以实现bug的修复了,完成不用重新发布版本,老是发布版本用户会疯掉。而且差异文件只有你修改文件的大小,可能就是1k,或者更少,根据你修改的多少而定。所以这样下载会非常快,立马见效。

准备工作:

github地址:https://github.com/Tencent/tinker;

githuib下载下来第一次运行有的会报错,上面一份是我用AS运行好的,辛苦费1分。

android热更新node android热更新和热修复使用_补丁

上面是下载后的项目结构。不要被这么多文件吓着了,其实步骤很简单,跟着我做,看好了。

打开你的AS,运行tinker-sample-android这个项目,然后点Build菜单里的rebuild project

因为我的AS是2.2.3最新版本,如果你的是2.0或者更低,请自己修改AS的配置文件或升级到2.2.3,不然导入会有错误提示。这些错误不是代码错误,而是你的AS配置文件错误。

打开了是这样的:

android热更新node android热更新和热修复使用_热更新_02

既然运行起来了,那我们就先运行一下吧。我们直接打APK文件然后放手机里安装吧。

点击右边的菜单:gradle:

android热更新node android热更新和热修复使用_热修复_03

可以看到有一个APK文件:app-release-0104-09-13-01.apk   我们将它手动放到手机里,然后安装。运行起来就上张图的那个界面。现在我们就把他当成一个有问题需要补丁的APK.

看好了,我们现在来加内容,生成一个新的APK来修复app-release-0104-09-13-01.apk


1,打开build.gradle文件,修改里面的配置:

android热更新node android热更新和热修复使用_github_04

关键的来了,我们加点东西,看是否会更新:

我这里加了一个按钮:

android热更新node android热更新和热修复使用_补丁_05

ok,我们再来生成新的差异文件吧,最后关键的一步了。

android热更新node android热更新和热修复使用_github_06

将我们的差异文件:patch_signed_7zip.apk放到手机根目录里。

在我们的软件里点击第一个按钮:LOAD PATCH:过一会后出来一个success的吐司出来,表示成功。如果没有成功可能你放的位置错了,不是在手机根目录。

android热更新node android热更新和热修复使用_补丁_07

只要看到成功success的吐司后,

你见软件退出,然后重新进入,奇迹出现了:

android热更新node android热更新和热修复使用_github_08

新加的按钮显示出来了,你点击一下,可弹出我们的吐司。

大功告成。

//补充说明:不支持AndroidManifest.xml修改后的重新编译,可以改布局,改代码,加资源文件等等。

是不是非常简单非常实用呢。

//------end----


//------补充,如果项目不能运行(run):找到设置,instant run:取消enable instant run的选项即可。