android 一步一步教你集成tinker(热修复)
这几天闲着没事,就看了下现在比较火的热修复,确实有了热修复就解决了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(热修复)的更多相关文章
- Android 增量更新完全解析 是增量不是热修复(转)
转自:http://blog.csdn.net/lmj623565791/article/details/52761658 本文在我的微信公众号:鸿洋(hongyangAndroid)首发. 转载请标 ...
- Android 腾讯bugly Tinker 热修复
Bugly热更新是腾讯推出的热更新框架,热更新是指无需到应用市场重新下载安装app,只需要在app内下载补丁包即可实现app的更新,主要用于app的bug修复或者少量改动. 大家在使用app(特别是游 ...
- Android插件化与热修复(六)-微信Tinker原理分析
Tinker热修复原理分析 热补丁技术是在用户不需要重新安装应用的情况下实现应用更新,可快速解决一些线上问题.热补丁省去了Android应用发布版本的成本,而且用户端的更新也是无感知的. Tinker ...
- Android 热修复 Tinker接入及源码浅析
一.概述 放了一个大长假,happy,先祝大家2017年笑口常开. 假期中一行代码没写,但是想着马上要上班了,赶紧写篇博客回顾下技能,于是便有了本文. 热修复这项技术,基本上已经成为项目比较重要的模块 ...
- Android 热修复 Tinker接入及源代码浅析
本文已在我的公众号hongyangAndroid首发.转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/54882693本文出自张鸿 ...
- Ace教你一步一步做Android新闻客户端(一)
复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...
- 一步一步教你在 Android 里创建自己的账号系统(一)
大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 大家在 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布
之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能--订阅发布 目录:一.通过Dapr实现一个简单的基 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(五)——一步一步教你如何撸Dapr之状态管理
状态管理和上一章的订阅发布都算是Dapr相较于其他服务网格框架来讲提供的比较特异性的内容,今天我们来讲讲状态管理. 目录:一.通过Dapr实现一个简单的基于.net的微服务电商系统 二.通过Dapr实 ...
随机推荐
- php5.3升级脚本
在lanmp/wdcp/wdOS的当前版本中,默认的php都是用到5.2.17的版本如需要升级到php5.3的,可使用如下脚本升级(注:此升级无安全漏洞等原因,只为某些追求高版本或应用需求需要高版本, ...
- Hadoop学习笔记(一)——编译安装和配置
近期工作调动.打算补一下大数据处理的知识.可能会陆续涉及hadoop.mongodb.ddbs等. 首先Apache提供二进制的Hadoop版本号是32位的.在启动时总是有警告,所以想自己编译一遍.部 ...
- LintCode: Single Number II
一篇解析比较详细的文章:http://www.acmerblog.com/leetcode-single-number-ii-5394.html C++ 解法(1) 求出每个比特位的数目,然后%3,如 ...
- 微信小程序 - 上拉加载更多组件
详情用例看demo,点击下载示例:loadmore
- PSQL命令小结
经常使用psql查询数据,现在总结几个常用的命令参数,供以后参考 -h 数据库地址 -U 数据库用户名 -t 不打印字段等信息 -c 执行的SQL语句 -s 单步执行,就是执行的时 ...
- SQL Server时间戳
select replace(replace(replace(replace(convert(varchar ,getdate() ,126) ,'-' ,'') ,' ' ,'') ,':' ,'' ...
- 8个很实用的在线工具来提高你的Web设计和开发能力
近期在网上看到一张帖子感觉不错.只是是英文版的今天闲着没事锻炼一下英语能力分享给大家看看! 原文地址:http://webdesignledger.com/tools/8-useful-online- ...
- SSM实战——秒杀系统之高并发优化
一:高并发点 高并发出现在秒杀详情页,主要可能出现高并发问题的地方有:秒杀地址暴露.执行秒杀操作. 二:静态资源访问(页面)优化——CDN CDN,内容分发网络.我们把静态的资源(html/css/j ...
- Linux下找不到动态链接库(转)
1.生成静态库 生成静态库使用ar工具,其实ar是archive的意思 $ar cqs libhello.a hello.o 2.生成动态库 用gcc来完成,由于可能存在多个版本,因此通常指定版本号: ...
- secureCRT,永久设置,保护眼睛,配色方案
配色后效果如下: 下面开始配色 1.选项(Options)==>会话选项(Sessions options)==>终端(Terminal)==>仿真(Emulation) 按图中标注 ...