Android插件化 热修复热门框架简析

1.dynamic-load-apk

作者 百度任玉刚 插件化框架 途牛已上线使用
支持代码 资源文件以插件形式加入到host。

缺陷:
  1. 不支持Service和BroadcastReceiver。
  2. 迁移成本,需要修改插件,插件app需要继承自proxyActivity
优点:
  1. 插件无需安装host即可吊起
  2. 支持R访问插件资源
  3. 插件支持Activity和FragmentActivity
  4. 基本无反射调用
  5. 插件安装后任可独立运行

2.Droid Plugin

作者 奇虎360张勇 360手机助手已上线使用
可实现几近无规则吊起

缺陷:
  1. 无法使用自定义资源的通知
  2. 无法注册一些特殊Intent Filter的组件(四大组件)
  3. 对Native支持不好
优点:
  1. 插件无需任何修改,可独立安装运行,也可以做插件运行
  2. 四大组件无需在Host程序注册
  3. 超强隔离性,不同插件运行在不同的进程中
  4. 资源完全隔离 5.实现进程管理,插件的空进程会被及时回收,占用内存低
  5. 插件的静态广播会被当作动态处理,如果插件没有运行,静态广播永远不会触发
  6. API侵入性低

3.DynamicAPK

作者 携程移动团队 携程旅行已上线使用
基于多dex/apk加载的解决方案

优点:
  1. 迁移成本低(无需做任何activity/fragment/resource的proxy实现)不使用代理来管理插件的activity/fragment的生命周期。修改后aapt会处理插件种的资源,R.java中的资源引用和普通Android工程没有区别,开发者可以保持原有的开发规范
  2. 更加有利于并发开发
  3. 提升编译速度
  4. 提升启动速度。dex解压、dexopt、加载耗时较长,使用按需加载启动时间过长
  5. 适合HotFix(代码和资源)
  6. 按需下载和加载任意功能模块(包含代码和资源)

深入了解DynamicApk

4.Nuwa

修改ClassLoader加载顺序并修改CLASS_ISPREVERIFIED达到热修复效果

优点:
  1. 自动化热修复
  2. 热修复所有优点

5.AndFix

作者 阿里巴巴移动团队 阿里旗下多款app已上线使用

原理 在Native层使用指针替换的方式替换bug方法,已达到修复bug的目的

对该框架了解不多,建议参考Coolspan Alibaba-AndFix Bug热修复框架原理及源码解析Air bolg的三篇AndFix解析进行深入了解。

这方面的框架还有很多,列举了几个比较优秀的供小伙伴们参考;由于作者水平有限,深入理解请根据源码和作者文档了解学习。

    原文作者:HuDP
    原文地址: https://www.jianshu.com/p/cd20368a2b50
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞