阿里巴巴对热修复技术的发展路线:
1、基于Xposed而来的Dalvik下java method hook技术-Dexposed框架,仅限于Dalvik虚拟机
2、兼容到Art虚拟机的Andfix,同样是基于底层的结构替换方案
3、进而发展就是hotfix,基于Andfix,有所提高,但都没有对资源和so实现修复能力
4、接下来就是这篇主角:17年6月提出的新方案-非入侵时Sophix
代码热修复原理
1、Dalvik下
采用了AndFix中的热修复方法
extern void __attribute__ ((visibility ("hidden"))) dalvik_replaceMethod(
JNIEnv* env, jobject src, jobject dest) {
jobject clazz = env->CallObjectMethod(dest, jClassMethod);
ClassObject* clz = (ClassObject*) dvmDecodeIndirectRef_fnPtr(
dvmThreadSelf_fnPtr(), clazz);
c