Android热修复升级探索——追寻极致的代码热替换

  1. 云栖社区>
  2. 阿里云ApsaraMobile(移动云)>
  3. 博客>
  4. 正文

Android热修复升级探索——追寻极致的代码热替换

万壑 2017-04-27 18:10:23 浏览16642
展开阅读全文

前言

前段时间,Android平台上涌现了一系列热修复方案,如阿里的Andfix、微信的Tinker、QQ空间的Nuva、手Q的QFix等等。

其中,Andfix的即时生效令人印象深刻,它稍显另类,并不需要重新启动,而是在加载补丁后直接对方法进行替换就可以完成修复,然而它的使用限制也遭遇到更多的质疑。

我们也对代码的native替换原理重新进行了深入思考,从克服其限制和兼容性入手,以一种更加优雅的替换思路,实现了即时生效的代码热修复。

Andfix回顾

我们先来看一下,为何唯独Andfix能够做到即时生效呢?

原因是这样的,在app运行到一半的时候,所有需要发生变更的Class已经被加载过了,在Android上是无法对一个Class进行卸载的。而腾讯系的方案,都是让Classloader去加载新的类。如果不重启,原来的类还在虚拟机中,就无法加

网友评论

登录后评论
0/500
评论
万壑
+ 关注