热修复-Tinker
微信开源,真是喜出望外,必须要去看看啊,比起nuwa来微信好很多,而且github上也有专门的官方文档说明,还有很多资料查询
参考地址:https://github.com/Tencent/tinker/wiki
https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
想着以前研究的时候还要分包块什么一些复杂想法,现在发展到这种程度,真是三天不打就上房揭瓦了,很好比喻互联网,学习不能断,可能在不知不觉的时候就已经发展几个阶段了
看对比图也知道了,微信的方式,和qq空间的方式的区别是不用插桩,无补丁的时候几乎没有性能损失,打补丁时需要删除核心加载类
文档还是挺详细的,照着文档来,基本跑通就没问题了
首先肯定是下载demo了,然后文档上介绍了几种方案,也是推荐gradle生成配置(见下图),demo里也是那样做的,那我们肯定也是走这个方案了
集成的时候demo里的gradle配置上用的 TINKER_ID 是获取的git的版本号,这个搞起来麻烦,文档上有结束,可以换成versionName等,我就换的versionName,这个 TINKER_ID 要注意保持一致,不然会失败
然后直接运行程序,或者build apk,成功后在你的项目路径app\build\bakApk里应该会有apk生成
然后可以修改你的bug了,可以在你的布局文件里修改显示的文本,修改好之后在As的terminal终端使用命令行 gradlew tinkerPatchDebug,可不能直接用你自己的apk改个名字就丢上去了,那样就over了
然后看到successful,这个时候在你项目的目录里就会有生成apk了,app\build\outputs\tinkerPatch\debug\
这个就是你的补丁了,把这个apk放到手机根目录就行了
点开你的app,点击load patch,你会看到一个打印出 patch success, please restart process的toast,这个时候你可以锁屏,然后点亮屏幕,发现ok了,或者重启app,然后点击SHOW INFO可以查看到详细的信息显示补丁包已经加载成功了,github本身就很多介绍的资料,可以结合别人写的好的博客看看学习,让自己更快的掌握
/**
*个人理解
*微信针对QQ空间超级补丁技术的不足提出了一个提供DEX差量包,整体替换DEX的方案。主要的原理是与QQ空间超级补丁技术基本相同,整体替换掉旧的DEX,达到修复的目的
**/
SampleApplication是gradle自动生成的,继承自 TinkerApplication ,然后设置捕捉代码异常,onBaseContextAttached就是我们要找的关键代码了
这代码大致是反射调用TinkerLoader的tryLoad()方法拿到加载补丁结果,加载补丁包,反射调用同步周期,重置安全模式次数,大于等于三次会进入安全模式不再加载,一点点理解
深入研究很是复杂的,正如微信张绍文所说,这真是一条跪着走完的路,而且我们可以不用跪了,先乘个凉
热修复-Tinker的更多相关文章
- Android热修复——Tinker的集成
前言 做前端开发的都知道,当我们项目做完了以后,都会把应用上传到应用市场上供用户下载使用,比如上传到应用宝啊,应用汇啊,360啊,小米,华为,魅族啊,等等但是,有时候我们会经常遇到一些很扯淡的事情,刚 ...
- 微信热修复tinker及tinker server快速接入
博客: 安卓之家 掘金: jp1017 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 当前热修复方案很多,今天研究了下微信的tinker,使用效果还是不错的,配合tinker serv ...
- Android 热修复 Tinker接入及源码浅析
一.概述 放了一个大长假,happy,先祝大家2017年笑口常开. 假期中一行代码没写,但是想着马上要上班了,赶紧写篇博客回顾下技能,于是便有了本文. 热修复这项技术,基本上已经成为项目比较重要的模块 ...
- Android 热修复 Tinker接入及源代码浅析
本文已在我的公众号hongyangAndroid首发.转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/54882693本文出自张鸿 ...
- Android 热修复 Tinker platform 中的坑,以及详细步骤(二)
操作流程: 一.注册平台账号: http://www.tinkerpatch.com 二.查看操作文档: http://www.tinkerpatch.com/Docs/SDK 参考文档: https ...
- Android 插件化和热修复知识梳理
概述 在Android开发中,插件化和热修复的话题越来越多的被大家提及,同时随着技术的迭代,各种框架的发展更新,插件化和热修复的框架似乎已经日趋成熟,许多开发者也把这两项技术运用到实际开发协作和正式的 ...
- Android 热修复方案Tinker
转自:http://blog.csdn.net/l2show/article/details/53925543 Android 热修复方案Tinker(一) Application改造 Android ...
- Android热修复之微信Tinker使用初探
文章地址:Android热修复之微信Tinker使用初探 前几天,万众期待的微信团队的Android热修复框架tinker终于在GitHub上开源了. 地址:https://github.com/ ...
- 微信tinker 热修复
Tinker 是微信官方的Android热补丁解决方案,它支持动态下发代码.So库以及资源,让应用能够在不需要重新安装的情况下实现更新.当然,你也可以使用Tinker来更新你的插件. github:h ...
随机推荐
- 谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- My TWI
前言 对TWI没有什么特别的印象,因为有一个更出名的TWU,而我去年又刚好错过了它,因此TWU的光辉完全掩盖了TWI.对TWI印象最深的是在邮件中看到的38th北京的这期,看到他们的图文记录,在圈子中 ...
- Oracle安装部署,版本升级,应用补丁快速参考
一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- 设计模式C#合集--单例模式
单例模式 代码: 第一种: private static Singleton singleton = null; private Singleton() { } public static Singl ...
- iOS从零开始学习直播之3.美颜
任何一款直播软件都必须进行美颜,不然哪来的那么多美女,所以技术改变世界,不只是说说而已.美颜在采集的时候就得就行,让主播实时看到直播的效果. 1.美颜原理 其实美颜的本质就是美白和磨皮,分别通 ...
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
- web安全浅析
就之前本人主持开发的金融产品所遇到的安全问题,设计部分请参见:http://www.cnblogs.com/shenliang123/p/3835072.html 这里就部分web安全防护就简单的交流 ...
- 【腾讯Bugly干货分享】一步一步实现Android的MVP框架
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5799d7844bef22a823b3ad44 内容大纲: Android 开发 ...
- 好好了解一下Cookie
Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新 ...