• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 热修复-Tinker,修复-tinker

热修复-Tinker,修复-tinker

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了tinker热修复,android热修复tinker,tinker热更新,tinker,tinker bell等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

热修复-Tinker,修复-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,然后点击SHOW INFO可以查看到详细的信息显示补丁包已经加载成功了,github本身就很多介绍的资料,可以结合别人写的好的博客看看学习,让自己更快的掌握

 

/**

*个人理解

*微信针对QQ空间超级补丁技术的不足提出了一个提供DEX差量包,整体替换DEX的方案。主要的原理是与QQ空间超级补丁技术基本相同,整体替换掉旧的DEX,达到修复的目的

**/

SampleApplication是gradle自动生成的,继承自 TinkerApplication ,然后设置捕捉代码异常,onBaseContextAttached就是我们要找的关键代码了

 

 

这代码大致是反射调用TinkerLoader的tryLoad()方法拿到加载补丁结果,加载补丁包,反射调用同步周期,重置安全模式次数,大于等于三次会进入安全模式不再加载,一点点理解
深入研究很是复杂的,正如微信张绍文所说,这真是一条跪着走完的路,而且我们可以不用跪了,先乘个凉

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 热修复-Tinker,修复-tinker

相关文章

  • 2017-05-26Android 学习1----控件的学习,android1----
  • 2017-05-26我的Android进阶之旅------)Android自定义View实现带数字的进度条(NumberProgressBar)
  • 2017-05-26drawable下的shape,drawableshape
  • 2017-05-26谷歌电子市场5--推荐,谷歌电子市场5--
  • 2017-05-26解析View的getDrawingCache方法,getdrawingcache
  • 2017-05-26Android开发学习—— 创建项目时,不是继承activity,而是继承ActionBarActivity,androidactivity继承
  • 2017-05-26MotionEvent机制(触屏),motionevent机制
  • 2017-05-26docke swarm mode 集群应用之四-私有仓库harbor设置过程
  • 2017-05-26Android的Message Pool是什么——源码角度分析,androidpool
  • 2017-05-26Android面试准备 第二天 第五例 数据存储

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 填坑实录 Android Studio 利用 ADB WIFI 插件实现真机无线调试,androidadb
    • Activity之概览屏幕(Overview Screen),activityoverview
    • TabLayout和ViewPager简单实现页卡的滑动,tablayoutviewpager
    • Mobizen免帐号版,Mobizen帐号版
    • 实现图片拖动,图片拖动
    • android TextView 设置字体大小,androidtextview
    • 在Android studio中进行单元测试和ui测试的分析
    • 安卓开发—简单的登陆界面,安卓登陆界面
    • android自定义activity,androidactivity
    • 一.TextView 显示文本框控件, EditText 输入文本框,.textviewedittext

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有