微信开源,真是喜出望外,必须要去看看啊,比起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的更多相关文章

  1. Android热修复——Tinker的集成

    前言 做前端开发的都知道,当我们项目做完了以后,都会把应用上传到应用市场上供用户下载使用,比如上传到应用宝啊,应用汇啊,360啊,小米,华为,魅族啊,等等但是,有时候我们会经常遇到一些很扯淡的事情,刚 ...

  2. 微信热修复tinker及tinker server快速接入

    博客: 安卓之家 掘金: jp1017 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 当前热修复方案很多,今天研究了下微信的tinker,使用效果还是不错的,配合tinker serv ...

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

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

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

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

  5. Android 热修复 Tinker platform 中的坑,以及详细步骤(二)

    操作流程: 一.注册平台账号: http://www.tinkerpatch.com 二.查看操作文档: http://www.tinkerpatch.com/Docs/SDK 参考文档: https ...

  6. Android 插件化和热修复知识梳理

    概述 在Android开发中,插件化和热修复的话题越来越多的被大家提及,同时随着技术的迭代,各种框架的发展更新,插件化和热修复的框架似乎已经日趋成熟,许多开发者也把这两项技术运用到实际开发协作和正式的 ...

  7. Android 热修复方案Tinker

    转自:http://blog.csdn.net/l2show/article/details/53925543 Android 热修复方案Tinker(一) Application改造 Android ...

  8. Android热修复之微信Tinker使用初探

      文章地址:Android热修复之微信Tinker使用初探 前几天,万众期待的微信团队的Android热修复框架tinker终于在GitHub上开源了. 地址:https://github.com/ ...

  9. 微信tinker 热修复

    Tinker 是微信官方的Android热补丁解决方案,它支持动态下发代码.So库以及资源,让应用能够在不需要重新安装的情况下实现更新.当然,你也可以使用Tinker来更新你的插件. github:h ...

随机推荐

  1. jQuery的61种选择器

    The Write Less , Do More ! jQuery选择器 1. #id : 根据给定的ID匹配一个元素 <p id="myId">这是第一个p标签< ...

  2. 学习AOP之透过Spring的Ioc理解Advisor

    花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...

  3. django server之间通过remote user 相互调用

    首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...

  4. 【详细教程】论android studio中如何申请百度地图新版Key中SHA1值

    一.写在前面 现在越来越多的API接口要求都要求提供我们的项目SHA1值,开发版目前还要求不高,但是发布版是必定要求的.而目前定位在各大APP中也较为常见,当下主流的百度地图和高德地图都在申请的时候会 ...

  5. jQuery幻灯片插件autoPic

    原文地址:Jquery自定义幻灯片插件 插件效果图: 演示地址:autoPic项目地址:autoPic 欢迎批评指正!

  6. 关于DDD的学习资料汇总

    DDD(Domain-Driven Design)领域驱动设计,第一次看到DDD是在学习ABP时,在其中的介绍中看到的.what,DDD是个什么鬼,我不是小白,是大白,没听过.于是乎,度娘查查查,找到 ...

  7. 统计iOS项目的总代码行数的方法

    打开终端, 用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or - ...

  8. 手动导入swift三方danielgindi/Charts到OC工程中教程

    1.到github网址上下载zip压缩包https://github.com/danielgindi/Charts 2.然后将解压后的文件夹整个拖到自己的工程文件夹下(很多教程只让拖xcodeproj ...

  9. Android种使用Notification实现通知管理以及自定义通知栏(Notification示例四)

    示例一:实现通知栏管理 当针对相同类型的事件多次发出通知,作为开发者,应该避免使用全新的通知,这时就应该考虑更新之前通知栏的一些值来达到提醒用户的目的.例如我们手机的短信系统,当不断有新消息传来时,我 ...

  10. web.xml中welcome-file-list的作用

    今天尝试使用struts2+ urlrewrite+sitemesh部署项目,结果发现welcome-file-list中定义的欢迎页不起作用: <welcome-file-list> & ...