Atlas、VirtualAPK、RePlugin三者的体验感受

前言

今年无疑是插件化火火火的一年,啊里、滴滴、360都先后开源了他们的插件化框架,好奇心重的我,也一个一个试着体验下了。声明,我并没有深入去阅读他们的源码,单纯的只是作为一个开发者的角度,去接入他们的框架使用。下面来说说我的使用感受:

简介

Atlas:https://github.com/alibaba/atlas/tree/master/atlas-docs
VirtualAPK:https://github.com/didi/VirtualAPK/wiki
RePlugin:https://github.com/Qihoo360/RePlugin/wiki

首先看看啊里的Atlas:

Atlas、VirtualAPK、RePlugin三者的体验感受_第1张图片
Altas简介

然后看看滴滴的VirtualAPK:

Atlas、VirtualAPK、RePlugin三者的体验感受_第2张图片
VirtualAPK简介

最后看看360的RePlugin:

Atlas、VirtualAPK、RePlugin三者的体验感受_第3张图片
RePlugin简介

对比

一、定义

从定义上说,Atlas定义为组件化,而VirtualAPK和RePlugin则定义为插件化。这两种还是有一点点不同的,组件化偏重于编译期,插件化偏重于运行期。换句话来说,Atlas在编译的时候是需要把bundle放在一起处理的,而后面两个则可以完全独立开,和开发新的一个apk一样,最后打包的时候配置一下就行。

二、接入难度

初次接入Atlas,那真的会有点懵逼,官方文档已经万年没更新的,GitHub上面的demo和文档上的好多都不一样,就算接入了,也会出现一堆问题,简直想死。想接入Atlas的,不妨看看我上一篇文章。VirtualAPK,滴滴这个,接入还算简单的了,文档也比较完善。RePlugin,360这个也挺简单的,宿主和插件分得很清楚。所以接入难度:RePlugin最快,VirtualAPK其次,Atlas最麻烦。

三、功能

三者都有的功能是远程bundle,按需加载。意思是项目中某个模块,打包的时候不打进apk,等你安装了,需要用到的时候再下载那个模块进行加载显示,从而减少apk的安装体积。Atlas会把插件打成so的形式,而VirtualAPK和RePlugin会打成apk的形式,都是放在内存卡,然后调用各自的安装加载方法就行。Atlas安装后,可以把so删掉,但VirtualAPK的apk需要一直在内存卡,否则是打不开的,而RePlugin安装后会自动备份一个apk到缓存目录。除了远程bundle功能,Atlas还有热修复的功能,可以不升级apk就实现宿主和组件的更新。

四、更新插件方式

Atlas更新插件的话,必须要和宿主一起,打差异补丁才能更新,而VirtualAPK和RePlugin是可以直接通过下载一个新的插件apk,然后调安装方法就能实现插件的更新。

五、插件独立性

Atlas前面说了,和宿主的依赖还是挺多,毕竟官方也强调是组件化,不是插件化。而VirtualAPK,它可以是一个独立的app,但插件里面也定义和宿主的关联,就是说这个插件apk并不能给其他宿主用,只能给插件里面声明的那个宿主使用。RePlugin呢,就比较独立了,里面不用声明和宿主的联系,所以你生成一个插件后,这个插件可以给其他宿主调用。

六、宿主和插件的公共库

如果宿主和插件都用到一些公共依赖库,比如http库,图片加载库,这个时候怎么处理?Atlas处理就简单了,毕竟是组件化,和宿主的项目都是在一起。可以在项目里面定义一个middleLibrary,这个库里面依赖一些公共的库或者资源,然后宿主和插件都依赖他就行了。VirtualAPK呢,由于插件里面要声明和宿主的关联,所以他会自动检测,如果插件中依赖的库,在宿主里面也有的话,他会自动去掉一个,不会重复。RePlugin是比较独立的,没有和宿主太多联系,所以目前大家的做法是宿主compile,插件 provided的形式,而共用资源的话,RePlugin是不提倡的了。

七、欢迎留言提问,我会继续回答补充

总结

以上仅仅是我个人的使用感受,有哪些地方你觉得不对,请及时指出来,我们互相学习。如果你的app需要热更新和插件的功能,推荐使用Atlas;如果你的app仅用到插件,在需要的时候才下载加载的话,你可以选择VirtualAPK和RePlugin;如果你的插件希望其他宿主也能用的话,那就只能RePlugin了,RePlugin就像一个应用市场,你的宿主仅仅是一个壳,然后把需要的插件下载加载使用就行,更新的话也无需更新宿主,直接更新插件就行。

题外话

接入demo和接入项目还是有挺大不同,demo跑通了,其实真正接入到项目使用的时候还会遇到一堆问题的。遇到问题怎么办,加群问吧。
VirtualAPK:QQ群 570158423
RePlugin:QQ群 653205923
Atlas:钉钉群

Atlas、VirtualAPK、RePlugin三者的体验感受_第4张图片
扫描加群吧

你可能感兴趣的:(Atlas、VirtualAPK、RePlugin三者的体验感受)