上一篇【热更新:使用Bugly集成的Tinker】主要是说的配置,配置Tinker确实很麻烦,当然好处也是很大的。不仅支持各种类,so,资源的替换,体积也较小,是一款很强大的热修复工具。妈妈再也不用担心我们被h5替代了!

都配置好了,肯定要实践一下来能体会它到底有多强大!

第一步:打基准包

在tinker-support.gradle中配置基准包的tinkerid

tinkerId最好是一个唯一标识,例如git版本号、versionName等等。 如果你要测试热更新,你需要对基线版本进行联网上报。

这里强调一下,基线版本配置一个唯一的tinkerId,而这个基线版本能够应用补丁的前提是集成过热更新SDK,并启动上报过联网,这样我们后台会将这个tinkerId对应到一个目标版本,例如tinkerId = "bugly_1.0.0" 对应了一个目标版本是1.0.0,基于这个版本打的补丁包就能匹配到目标版本。

执行assembleRelease编译生成基准包,官方文档是这么说的,可我真不会打这个assembleRelease,平时要么直接运行,要么直接就打包!

这里遇到一个坑,就是直接运行是运行不起的,报错!到处找寻答案,最后是一个大神说是因为和instant run不兼容,需要关闭!

取消Instant Run

最后在群里面问道了执行的方法,原来在最右边的Gradle里面

assembleRelease.png

用了快一年的AS,还不知道如何打基准包,惭愧啊!

查了很多资料才知道没有什么基准包,只是这种打包的方式和手动打包有所区别。其实也就是打一个安装包而已!

在这里我不得不说我又遇到了一个问题,就是打出来的包和官方的不一样。我不仅仅说的是名字不一样,而是我打出来的包根本没有签名!是下面这样的:

我打的基准包

于是我又开始查我的包为什么不一样,发现根本找不到答案。其实从名字就可以看出,其实是我打的包没有签名!于是就去查如何用assembleRelease签名打包!又查了一天才知道了原来有手动打包和自动打包的区别!

手动打包:就是通过AndroidStudio工具栏的Build->Generate signed APK...来打包

手动打包

自动打包:通过在Gradle中配置signingConfigs来,然后点击右边当前项目下的assembleRelease命令来打包

自动打包

自动签名参考 :AndroidStudio配置gradle,让App自动签名

最开始我还把没有签名的unsign.apk用360工具来签名打包,累死个人,现在想想当初自己是有多蠢啊!

注意:这个打好的基准包需要安装到手机上面,联网的情况下打开以下为后面的补丁包做准备,也就是官方说的联网上报。后台logcat可以看日志输出,官方图如下:

联网上报

第二步:打补丁包

打补丁包之前要修改你项目的东西,这样才能有所区分,这个我就不说了!关键是要修改tinker-support.gradle里面的配置,appName的名字一定要是你打的基准包的目录的名字,不然会报找不到oldapk的错误,同时还要修改tinkerId字段!

tinker-support.gradle文件修改

项目和这个文件修改只有,点击buildTinkerPatchRelease就可以了,之前我没有配置自动签名,打这个补丁包都打不了!

打补丁包

生成的补丁包在build/outputs/patch/release目录下(官方在build/outputs/patch下,不知道我自己为什么多个了release):

补丁包位置

第三步:上传下发补丁

就是进入Bugly官方,进入你当前项目,在应用升级里面可以找到热更新,上传patch_signed_7zip.apk这个文件,然后立即下发!

QQ截图20170224154323.png

第四步:测试

测试的时候,一定要把这个应用彻底关闭后再启动,修改才会生效!

总结:

写这个整整用了我一周的时间,因为在其中遇到了太多别人和官方没有问题(官方不会教你自动签名的配置,因为那不是它的事),也因为很多配置都看不明白,只会依葫芦画瓢,所以进度很慢,同时也学到了很多。特别是经历重重困难后终于测试成功,代码展现后的喜悦只能用以泪洗面,哭着笑了来形容!在此记录下来,献给奋斗在代码前线的同僚们,坚强不息,代码不止!

两年之后再探Tinker,发现他们现在出了TinkerPatch平台,感觉比在Bugly中使用热更新更简单了:

Tinker再探之TinkerPatch 平台

war包热更新_热更新实践:Bugly热更新打包及修复相关推荐

  1. 博图os更新_西门子PLC固件如何操作更新?

    随着西门子PLC中的TIA 软件V14 版本以及S7-1200 CPU V4.2 固件版本的发布,S7-1200 CPU的固件已经可以通过以下几种方式进行升级: 1.使用存储卡更新CPU固件. 2.使 ...

  2. jboss war包放哪_如何将JBoss HR Employee Rewards项目放入云端

    jboss war包放哪 我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了. 我们从头到尾讨论了各个层次,但尚未为您提供除Red Hat Conta ...

  3. war包启动命令_【漏洞预警】Oracle WebLogic远程命令执行0day漏洞(CVE20192725补丁绕过)...

    概述 近日,奇安信天眼与安服团队通过数据监控发现,野外出现Oracle WebLogic远程命令执行漏洞最新利用代码,此攻击利用绕过了厂商今年4月底所发布的最新安全补丁(CVE-2019-2725). ...

  4. 苹果屏蔽更新_如何屏蔽苹果系统自动更新

    以前都是安装tv描述文件即可屏蔽,但最近该文件提示过期失效了,所以目前需要采取其他方法来屏蔽ios13系统的自动升级啦 未越狱用户 原理:通过关闭手机(设置)的联网状态从而实现不自动下载更新文件(修改 ...

  5. flutter不支持热更新_真当Flutter不能热更新?众能动态化Flutter

    效果展示 上面铁军中的这个关于我们页面以及转换为了动态化页面. 动态化标签 动态化路由 一个flutter页面转换为动态化页面,只需要添加动态化标签和动态化路由就行了,对业务页面的开发修改很少,相比其 ...

  6. pve 不订阅更新_??“吃鸡”体验服已无更新,暗夜危机2.0或将被1款新游代替

    大家好,欢迎来到由小鱼干开讲的<吃鸡新鲜事速报>,最近大家应该也看了不少体验服的更新吧,本次体验服更新的内容还是挺多的,包括有1张新地图.2个新玩法.2个新模式. 同时,端游的近战武器投掷 ...

  7. 华为p10关闭更新_华为P10怎么取消系统更新提醒

    华为P10怎么取消系统更新提醒 随着科技的发展,手机已经成为人们日常生活中必不可少的工具,当我们在使用华为手机时,如何将系统更新提醒关闭呢?接下来就由小编来告诉大家. 具体如下: 1.第一步,打开手机 ...

  8. 如何关闭win10自动更新_如何关闭win10系统自动更新

    现在win10系统市场占有率已经非常高了,而且很多新的电脑不在支持以前版本的系统,但是用过win10系统的朋友们会发现win10系统经常会在后台进行自动更新,不仅占用系统资源,使电脑变卡,而且还找不到 ...

  9. 系统要不要更新_手机经常弹出“系统更新”,到底要不要更新?用户:后悔已来不及...

    阅读本文前,请您先点击上面的蓝色字体"生活妙招噻",再点击"关注",这样您就可以继续免费收到内容了.每天都有分享.完全是免费订阅,请放心关注. 手机已经成为人们 ...

  10. oracle 子表数据变化时主表也会更新_亿信ABI版本重大更新,新增60余个实用新功能,还有一项黑科技...

    今年,亿信ABI横空出世,产品一经推出,前来体验.咨询.购买的客户络绎不绝.老板点赞,客户开心,年终奖感觉又要翻几番. 但是紧接而来的是,广大用户对于产品优化的需求就如同潮水一般涌来-- 为此,我们的 ...

最新文章

  1. navicat 几个 可用的东西
  2. 关于ArrayList的几大问题,看完还不懂来打我!
  3. 单独使用 EHCache
  4. android studio控件使用方法,android studio使用教程
  5. 在python中,用正则表达式提取多层括号中最外层括号包含的内容
  6. 第1节 kafka消息队列:7、kafka的消费模型
  7. 汇编语言:编写代码实现字符串的复制
  8. OpenCV:Mat数据类型/16to8bit/RECT/画线填充
  9. 【JAVA SE】第七章 继承和多态
  10. [转载] python模块的分类有哪些_整理了一份清单,常见Python问题的快速解答包
  11. .net mysql字符串截取_MySQL 字符串拆分操作(含分隔符的字符串截取)
  12. MYSQL正在使用select发现现场记录方法,包括一个逗号分隔的字符串
  13. 你的设备中缺少重要的安全和质量修复_2020华富管道非开挖修复工程施工欢迎前来咨询...
  14. android x5内核 下载地址,在Android项目中集成腾讯X5内核
  15. php 横屏和竖屏,面试问题,视频横屏与竖屏的设计差异?我是这样回答的
  16. Go语言发展状况和前景
  17. 计算机学院李成伟,河南科技学院校长李成伟一行看望慰问我院招生录取工作人员...
  18. 511遇见易语言流程控制变量循环首
  19. 更改设置让Cheat Engine搜索安卓模拟器里的数据
  20. robocup学习篇(一)

热门文章

  1. 你在猎头那里值多少钱?
  2. 合宙Air700E/4G模块使用AT指令查询基础信息
  3. IDEA中安装并使用JRebel热部署插件
  4. 全能助理2010(下)
  5. 2023最新帝国CMS7.5手赚网试玩平台源码/可封装APP+带文章功能系统
  6. 钢条切割问题 DP
  7. 旅行回忆录----九寨沟、黄龙篇
  8. ENSP配置 实例十 ACL配置
  9. 5G网优工程师所在的通信行业,就业前景好不好?看高就业率啊!
  10. 20181206 周四 日记