手把手教你android 热更新代码实操之路,不用重新打包照样修复大bug

前天晚上使用bugly实现版本更新的时候,我突然发现bugly更新版本了,并且增加了一个重大的更新,我立马就充满鸡血,立马想尝试一下。毕竟我前几个月研究了一下热更新能力了,个人感觉微信的tinker比较强大一点,一下是对比图,不过我去看微信tinker的git跟着实现起来我却显的很无奈了,今天看到bugly已经集成进去了,让我感到非常happy,接下来我和大家一步一步实现bugly的热更新吧!!fixbug!!!!

下载博客一图片对比给大家参考一下

在开始讲解之前,可能有的人觉得很奇怪为什么要用bugly来集成,我拷贝官网的话给大家看看。

为什么使用Bugly热更新?

1、无需关注Tinker是如何合成补丁的

2、无需自己搭建补丁管理后台

3、无需考虑后台下发补丁策略的任何事情

4、无需考虑补丁下载合成的时机,处理后台下发的策略

5、我们提供了更加方便集成Tinker的方式

6、我们通过HTTPS及签名校验等机制保障补丁下发的安全性

7、丰富的下发维度控制,有效控制补丁影响范围

8、我们提供了应用升级一站式解决方案

我就特别喜欢这种简单快捷的实现方式。

废话不再多说,大家跟着我一起来敲键盘吧!!!

1、我们在项目中的build.gradle文件中加入:

// tinker gradle插件

classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.5')

// tinkersupport插件

classpath"com.tencent.bugly:tinker-support:latest.release"

注意:指定tinker插件版本为1.7.5,避免因为插件版本的变更导致补丁包的生成的问题。


第一步

2、在app module的“build.gradle”文件中添加如下配置(内容比较多粘贴内容你们看的也累也看不出什么东东,我截图标注几点重要的地方给大家注意下,文末给出链接大家加载参考)

添加依赖:

// 多dex配置

compile'com.android.support:multidex:1.0.1'

// 集成Bugly热更新aar(灰度时使用方式)

//    compile(name: 'bugly_crashreport_upgrade-1.2.0', ext: 'aar')

compile'com.tencent.bugly:crashreport_upgrade:latest.release'


第一注意点


第二注意点,有bug的应用根据这个id来找补丁


第三注意点

以上就是app的gradle要特别注意的几点,接下来我们继续撸码

3、自定义Application

-SampleApplication 不做任何操作,所有Application的代码都会放到ApplicationLike继承类当中

自定义application这里面不做任何操作,所有Application的代码都会放到ApplicationLike继承类当中


-SampleApplicationLike  这个类是Application的代理类,以前所有在Application的实现必须要全部拷贝到这里,在onCreate方法调用SDK的初始化方法

截图1
截图2

4、本章的重点出来了,就是修复代码工作:

看一下错误代码,我讲算术除于0,结果大家都知道,肯定挂了,不信,截图

算术错误

注意:这个有bug的app就是官网所说的基准包了,即要修复的版本应用。


先制作一个有bug的app


应用挂了

-修正代码 Fixbug,然后执行以下动作制作补丁

fix bug
制作补丁

bugly控制台,大家可以看到我上面有2.0以后的补丁,其实我也现在又个很纳闷的问题,就是如果我下发的补丁规则是开发设备就不会下载补丁,有知道的大神可以教教我么?或许我们可以互相探讨一下。(感谢@__Berial___ 指出开发设备要在代码中加入一句:Bugly.setIsDevelopmentDevice(this, true);)

上传补丁
log日志


成功修改错误


一大早我就过来尝试一下tinker强大的功能:新增方法,新增类和资源文件,接下来的修改代码我就不更新到githut,大家可以下载我的源码随便去搞搞研究一下

测试添加方法和新增一个类:


代码截图,添加一个方法和一个类
加载成功的log日志


加载成功的log日志


我们结束一下应用再进来,看到界面成功输出

最后输入我添加方法和添加一个类返回的字符拼接

在资源中新增一个图片,在布局中加入Imageview控件

修改布局文件,添加一个图片控件

在代码中找出该控件,并设置点击事件修改图片显示

代码修改控件显示的图片


运行出来的结果


运行出来的结果,图片已被更改

为了给真实的数据给你们,我也想亲手实践才好壮大我的胆去吹牛逼啊,所以我在官网拼命上传补丁,真心不容易,不过看到最终出来的效果,爽爽的

补丁啊补丁

注意坑:如果生成补丁的时候,提示的错误,不慌不忙,去检查一下混淆规则,我就是爱装逼,顺手把教程的混淆规则全拷上去了,我项目中没用到v4包,但是按道理应该没事吧,但是删除v4包的混淆就没事了

生成补丁的时候提示的错误
这里

接下来我们手工打道回府,哈哈、、如有错误请多多包涵,并教一下小弟,也可交流一下技术。

源码下载地址   git码云地址 兄弟们star一下再走呗

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,312评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,578评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,337评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,134评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,161评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,303评论 1 280
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,761评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,421评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,609评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,450评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,504评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,194评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,760评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,836评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,066评论 1 257
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,612评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,178评论 2 341

推荐阅读更多精彩内容