微信开源,真是喜出望外,必须要去看看啊,比起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. 关于如何提高Web服务端并发效率的异步编程技术

    最近我研究技术的一个重点是java的多线程开发,在我早期学习java的时候,很多书上把java的多线程开发标榜为简单易用,这个简单易用是以C语言作为参照的,不过我也没有使用过C语言开发过多线程,我只知 ...

  2. C#中那些[举手之劳]的性能优化

    隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒...... 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对大多数程序猿 ...

  3. HTML 事件(二) 事件的注册与注销

    本篇主要介绍HTML元素事件的注册.注销的方式. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流.事件委托 4. ...

  4. canvas与html5实现视频截图功能

    这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上 ...

  5. vue双向数据绑定原理探究(附demo)

    昨天被导师叫去研究了一下vue的双向数据绑定原理...本来以为原理的东西都非常高深,没想到vue的双向绑定真的很好理解啊...自己动手写了一个. 传送门 双向绑定的思想 双向数据绑定的思想就是数据层与 ...

  6. Atitit.如何建立研发体系

    Atitit.如何建立研发体系 组织,流程,prj..Mana  oppm 发管理是一个完整的管理体系,从结构上来讲,它主要由四个方面的内容构架而成:组织结构与岗位设置 管理流程与工作流程..项目及管 ...

  7. SpringMVC视图解析器

    SpringMVC视图解析器 前言 在前一篇博客中讲了SpringMVC的Controller控制器,在这篇博客中将接着介绍一下SpringMVC视 图解析器.当我们对SpringMVC控制的资源发起 ...

  8. 执行git push出现"Everything up-to-date"

    在github上git clone一个项目,在里面创建一个目录,然后git push的时候,出现报错"Everything up-to-date" 原因:1)没有git add . ...

  9. Android连接网络打印机进行打印

    首先这是网络打印工具类,通过Socket实现,多说一句,网络打印机端口号一般默认的是9100 package com.Ieasy.Tool; import android.annotation.Sup ...

  10. C#迪杰斯特拉算法

    C#迪杰斯特拉算法 网上有许多版本的,自己还是写一个理解点 Dijkstra.cs public class Dijkstra { private List<Node> _nodes; p ...