Android插件化和热修复的区别和联系

来源:互联网 发布:php .net哪个好 编辑:程序博客网 时间:2024/06/04 22:38

【原文地址 点击打开链接】(文章最后一部分内容

插件化框架:


此处输入图片的描述

插件化发展历史:博客一博客二

说到未来,也不得不提去年出来的ReactNative,RN比插件化更轻量级,越来越多人选择了RN,或许会代替插件化,虽然还有很多缺点,比如说没网的时候

热修复与插件化的对比

共同原理:
都使用ClassLoader来实现的加载的新的功能类,都可以使用PathClassLoader与DexClassLoader
不同的是:
  热修复因为是为了修复Bug的,所以要将新的同名类替代同名的Bug类,要抢先加载新的类而不是Bug类,所以多做两件事:在原先的app打包的时候,阻止相关类去打上CLASS_ISPREVERIFIED标志,还有在热修复时动态改变BaseDexClassLoader对象间接引用的dexElements,这样才能抢先代替Bug类,完成系统不加载旧的Bug类
  而插件化只是增肌新的功能类或者是资源文件,所以不涉及抢先加载旧的类这样的使命,就避过了阻止相关类去打上CLASS_ISPREVERIFIED标志和还有在热修复时动态改变BaseDexClassLoader对象间接引用的dexElements

  所以插件化比热修复简单,热修复是在插件化的基础上在进行替旧的Bug类



0 0
原创粉丝点击