这几天闲着没事,就看了下现在比较火的热修复,确实有了热修复就解决了android native的一个很尴尬问题,之前比起h5,android在用户体验上是有优势,但是过于复杂的版本更新,使用户烦不胜烦(这个深有体会啊,之前项目除了个bug就发布个更新,尼玛还是强制更新,我要是客户我就日了狗),好了不多说了,我们要发车了准备好上车

这就是tinker的wiki : https://github.com/Tencent/tinker/wiki (有啥不懂的就是里面wikiwiki下)。

这是tinker的demo下载地址:https://github.com/Tencent/tinker

集成tinker很so easy跟着 老湿的步骤发车(如有翻车请见谅)

1.从git上面下载tinker的官方demo下来,上面的东西我们先不管,就直接从他的tinker-sample-android这个demo 搞起

 

2.将其导入as中,一般直接导入进来是无法运行的,他会报错,这是个什么错呢,啥玩意又是tinkerid呢,从上面的wiki里面可以看出这些参数的意思,如果对build.gradle里面那些配置参数不懂的都可以在上面的wiki中寻找到,这个tinkerID我的理解就是加密和解密一样的匹配关系,验证基准apk包的时候判断是不是补丁包的tinkerid一样

 

3.这个tinkerid 可以用git版本号,也可以用versionname来定义,这个demo里面他用的是他的git 版本号,所以直接拿来我们跑肯定是有问题的,我们需要手动修改下这个(如果你有配git的话可以用git版本好来定义,如果咩有的话就用versionname一样),如果修改build.gradle里面的 def gitSha()方法 我用的是git的版本号

 
 

4.差不多了我们要开始真正的发车了我们可以先在gradle里面运行assembleDebug生成一个apk文件 我们先将这个apk安装到手机上面当作发布出去的apk这就是安装完后的效果图。

 
 
 

5 现在这个项目突然出现问题了,我要对他进行修改给他添加个按钮怎么搞呢,难道又要发版本,尼玛太吓人了一点小东西就要发布版本,客户还用个蛋蛋,好了用了tinker就不用担心这个问题了我们来开始整吧。

将我们刚

 

我这里是编译了很多次,一般你们里面应该只会有一个,.apk的名字和.txt文件的名字复制下来进入build.gradle里面将tinkerOldApkpath和tinkerapplyResourcePath的路径替换成刚要你复制的,这样就等于指定了要等会热更新要替换的包

 
 

这步完成后基本没啥好改的了,就是一些操作问题了,基本上难不倒各位老司机了,来我们接着发车(有没有到这一步翻车的司机有的话就评论下我给你推2把)。

6,老apk的事情都搞完了,现在来搞搞我们要修复的apk,现在我要在刚那个界面添加一个按钮,等会见证奇迹就是见证这个刷出来的更新按钮。

 

7.界面也改了差不多要看效果了,看效果之前我们还有2个步骤呢慢慢来不急,首先我们要把我们这个新改过的界面gradle里面执行下tinkerpatchdebug

 
 
 

将这个pathc_signed_7zip.apk这个补丁包放入我们内存卡的根目录中,可以直接将这个apk放入我们的根目录,也可以执行adb push ./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/命令来将我们的补丁包放入sd卡根目录。

结束:接下来就是见证奇迹的时候 点击我们开始安装的修复之前的app

 

点击LOAD PATCH加载我们的补丁包(一般情况下,是我们把补丁包给后台哥们,然后让后台哥们给我们来下载下来使用补丁包的),点击后如果有吐司弹出patch success, please restart process,那就表示补丁包加载成功了,这个时候你点击kill self或者关闭屏幕在开启就可以看见奇迹了。

 

android 一步一步教你集成tinker(热修复)的更多相关文章

  1. Android 增量更新完全解析 是增量不是热修复(转)

    转自:http://blog.csdn.net/lmj623565791/article/details/52761658 本文在我的微信公众号:鸿洋(hongyangAndroid)首发. 转载请标 ...

  2. Android 腾讯bugly Tinker 热修复

    Bugly热更新是腾讯推出的热更新框架,热更新是指无需到应用市场重新下载安装app,只需要在app内下载补丁包即可实现app的更新,主要用于app的bug修复或者少量改动. 大家在使用app(特别是游 ...

  3. Android插件化与热修复(六)-微信Tinker原理分析

    Tinker热修复原理分析 热补丁技术是在用户不需要重新安装应用的情况下实现应用更新,可快速解决一些线上问题.热补丁省去了Android应用发布版本的成本,而且用户端的更新也是无感知的. Tinker ...

  4. Android 热修复 Tinker接入及源码浅析

    一.概述 放了一个大长假,happy,先祝大家2017年笑口常开. 假期中一行代码没写,但是想着马上要上班了,赶紧写篇博客回顾下技能,于是便有了本文. 热修复这项技术,基本上已经成为项目比较重要的模块 ...

  5. Android 热修复 Tinker接入及源代码浅析

    本文已在我的公众号hongyangAndroid首发.转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/54882693本文出自张鸿 ...

  6. Ace教你一步一步做Android新闻客户端(一)

    复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...

  7. 一步一步教你在 Android 里创建自己的账号系统(一)

    大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 大家在 ...

  8. 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布

    之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能--订阅发布 目录:一.通过Dapr实现一个简单的基 ...

  9. 通过Dapr实现一个简单的基于.net的微服务电商系统(五)——一步一步教你如何撸Dapr之状态管理

    状态管理和上一章的订阅发布都算是Dapr相较于其他服务网格框架来讲提供的比较特异性的内容,今天我们来讲讲状态管理. 目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实 ...

随机推荐

  1. MVC 之 缓存机制(一)

    一.概述 缓存是将信息(数据或页面)放在内存中以避免频繁的数据库存储或执行整个页面的生命周期,直到缓存的信息过期或依赖变更才再次从数据库中读取数据或重新执行页面的生命周期.在系统优化过程中,缓存是比较 ...

  2. VMware用于Site Recovery Manager 5的vSphere Replication功能一览

    http://www.searchstorage.com.cn/showcontent_54838.htm 参考:深度解析SRM 5.0和vSphere Replication http://wenk ...

  3. spring boot 运行提示:Process finished with exit code 1

    spring boot 运行提示:Process finished with exit code 1 经检查发现是由于在application.properties配置文件中将某些自定义配置项移除了, ...

  4. UART,SPI,IIC的一点理解

    转自:http://bbs.21ic.com/icview-253715-1-1.html UART通用异步收发器,UART是通用的异步传输模式,在它这种基础上加上其他接口或者解码器就衍生出多种异步传 ...

  5. JAVA 数据库连接池(伪代码,简单易读)

    一.引言 近年来,随着 Internet/Intranet 建网技术的飞速发展和在世界范围内的迅速普及,电子商务的冲击波又一次在世界范围内掀起巨浪,各类商务网站吸引着大量用户的青睐,商务网站的访问量也 ...

  6. JAVA设计模式——第 5 章 工厂方法模式【Factory Method Pattern】(转)

    女娲补天的故事大家都听说过吧,今天不说这个,说女娲创造人的故事,可不是“造人”的工作,这个词被现代人滥用了.这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的,空 ...

  7. dir for RequestHandler and request

    两个对象的dir # RequestHandler ['GET', 'GETPOST', 'POST', 'SUPPORTED_METHODS', '_ARG_DEFAULT', '_INVALID_ ...

  8. [转]什么是 RPC?

    知乎上看到的一个解释,解释的太精炼太直接,忍不住在这记录一下. 知乎地址:https://www.zhihu.com/question/25536695 本地过程调用 RPC就是要像调用本地的函数一样 ...

  9. Webwork【04】Configuration 详解

    Webwork做为经典的Web MVC 框架,个人觉得源码中配置文件这部分代码的实现十分考究. 支持自定义自己的配置文件.自定义配置文件读取类.自定义国际化支持. 可以作为参考,单独引入到其他项目中, ...

  10. Spring学习笔记一:基础概念

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774310.html    一:Spring是什么 Spring的主要作用是作为对象的容器. 传统编程中,我们 ...