Android平台出现了一些优秀的热更新方案,主要可以分为两类:一类是基于multidex的热更新框架,包括Nuwa.Tinker等:另一类就是native hook方案,如阿里开源的Andfix和Dexposed. 基于native hook的方案   需要针对dalvik虚拟机和art虚拟机做适配,需要考虑指令集的兼容问题,需要native代码支持,兼容性上会有一定的影响: 基于Multidex的方案   需要反射更改DexElements,改变Dex的加载顺序,这使得patch需要在下…
本文来自网易云社区 作者:王晨彦 Application 处理 上面我们已经对所有 class 文件插入了 Hack 的引用,而插入 dex 是在 Application 中,Application 启动前肯定要先加载 Application.class,但这时 dex 还没被插入,因此肯定会引起 ClassNotFoundException ,因此我们不能使 Application 引用 Hack. 那么修改 class 文件时如何知道哪个是 Application 呢,有人可能会说直接特判不…
本文来自网易云社区 作者:王晨彦 前言 热修复和插件化是目前 Android 领域很火热的两门技术,也是 Android 开发工程师必备的技能. 目前比较流行的热修复方案有微信的 Tinker,手淘的 Sophix,美团的 Robust,以及 QQ 空间热修复方案. QQ 空间热修复方案使用Java实现,比较容易上手. 如果还不了解 QQ 空间方案的原理,请先学习安卓App热补丁动态修复技术介绍 今天,我们就基于 QQ 空间方案来深入学习热修复原理,并且手把手完成一个热修复框架. 本文参考了 N…
AndFix,全称是Android hot-fix.是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug.支持Android 2.3 到 6.0,并且支持arm 与 X86系统架构的设备.完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结尾的文件. # 测试结果说明: # 1. 测试能否修复Acitivity生命周期的方法 生成补丁 打补丁后的结果 成功!!!!!!!!!! 2.测试能否修复Fragment生命周期的方法 生成补丁 打补丁后的…
AndFix的github地址 AndFix 全称Android hot-fix,是alibaba的Android热修复框架,支持Android 2.3到6.0的版本,支持arm与X86系统架构,支持Dalvik和ART Runtime. 原理 AndFix的原理就是方法的替换,把有bug的方法替换成补丁文件中的方法.   原理-替换方法.png 使用教程 1. 添加依赖和混淆 compile 'com.alipay.euler:andfix:0.4.0@aar' }```    **混淆:**…
  文章地址:Android热修复之微信Tinker使用初探 前几天,万众期待的微信团队的Android热修复框架tinker终于在GitHub上开源了. 地址:https://github.com/Tencent/tinker 官方介绍:https://my.oschina.net/shwenzhang/blog/751618 接入指南:https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D…
在Android应用开发中,热修复技术被越来越多的开发者所使用,也出现了很多热修复框架,比如:AndFix.Tinker.Dexposed和Nuwa等等.如果只是会这些热修复框架的使用那意义并不大,我们还需要了解它们的原理,这样不管热修复框架如何变化,只要基本原理不变,我们就可以很快的掌握它们.这一个系列不会对某些热修复框架源码进行解析,而是讲解热修复框架的通用原理. 1.热修复的产生概述 在开发中我们会遇到如下的情况: 1. 刚发布的版本出现了严重的bug,这就需要去解决bug.测试并打渠道包…
本文框架 什么是热修复? 热修复框架分类 技术原理及特点 Tinker框架解析 各框架对比图 总结   通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单描述一下Tinker的框架结构. 一.什么是热修复? 正常开发流程 热修复开发流程 热修复优势 修复什么? 二.热修复框架分类 现状:百花齐放百家争鸣 简单分类 更合理的分类 三.技术原理及特点 3.1 阿里Dexposed -- native解决方案 原理: 直接在native层进行方法的结构体信…
2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案.阿里AndFix以及微信Tinker(Bugly sdk也集成Tikner热更新)和阿里最新出品Sophix.它们在原理各有不同,适用场景各异.不过从技术上来说多数热修复框架是基于ClassLoader加载机制.下面是常见热修复框架的比较. 开通热修复服务 读者可以打开Sophix热修复的官网:Sophix官网1.注册阿里云账号,选择移动热修复服务 ,选择之后需要开通此功…
https://blog.csdn.net/xiangzhihong8/article/details/77718004 插件化和热修复技术是Android开发中比较高级的知识点,是中级开发人员通向高级开发中必须掌握的技能,插件化的知识可以查我我之前的介绍:Android插件化.本篇重点讲解热修复,并对当前流行的热修复技术做一个简单的总结.热修复什么是热修复? 简单来讲,为了修复线上问题而提出的修补方案,程序修补过程无需重新发版!技术背景 在正常软件开发流程中,线下开发->上线->发现bug-…