Android热修复技术原理详解(最新最全版本)

本文详细介绍了Android热修复技术,包括热修复的定义、开发流程和优势。探讨了阿里Dexposed、AndFix、QQ空间的Dex插桩方案、美团Robust、微信Tinker和阿里Sophix等主流框架的原理、优缺点。特别指出,Robust在代码修复上的即时性和高兼容性,而Tinker则支持资源和So库更新。Sophix通过优化Andfix解决了稳定性问题,并创新了资源和SO修复方法。文章提供了各框架的对比图,总结时推荐了在不同需求下选择的热修复方案。
摘要由CSDN通过智能技术生成

本文框架

  • 什么是热修复?
  • 热修复框架分类
  • 技术原理及特点
  • Tinker框架解析
  • 各框架对比图
  • 总结

通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单描述一下Tinker的框架结构。

一、什么是热修复?

正常开发流程

image

热修复开发流程

image

热修复优势

image

修复什么?

image

二、热修复框架分类

现状:百花齐放百家争鸣

image

简单分类

image

更合理的分类

image

三、技术原理及特点

3.1 阿里Dexposed – native解决方案

原理:

  • 直接在native层进行方法的结构体信息对换,从而实现完美的方法新旧替换,从而实现热修复功能

他的思想完全来源于Xposed框架,完美诠释了AOP编程,这里用到最核心的知识点就是在native层获取到指定方法的结构体,然后改变他的nativeFunc字段值,而这个值就是可以指定这个方法对应的native函数指针,所以先从Java层跳到native层,改变指定方法的nativeFunc值,然后在改变之后的函数中调用Java层的回调即可。实现了方法的拦截功能。

  • 基于开源框架Xposed实现,是一种AOP解决方案
  • 只Hook App本身的进程,不需要Root权限

image

image

image

优点:

  • 即时生效
  • 不需要任何编译器的插桩或者代码改写,对正常运行不引入任何性能开销。这是AspectJ之类的框架没法比拟的优势;
  • 对所改写方法的性能开销也极低(微秒级),基本可以忽略不计;
  • 从工程的角度来看&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值