1.什么是插件化开发
首先我们要对插件化的概念有一个认识:插件化开发是将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(组件化的每个模块是个lib),最终打包的时候将宿主apk和插件apk分开或者联合打包。
插件式开发通俗的讲就是把一个很大的app分成n多个比较小的app,其中有一个app是主app。基本上可以理解为让一个apk不安装也可以被运行。只不过这个运行是有很多限制的运行,所以才叫插件否则就叫病毒了。
2.插件化开发的优缺点
优点:
1.模块解耦
2.解除单个dex函数不能超过65535的限制
3.支持动态升级
4.高效开发(编译速度更快)
基于插件化的开发列举一个比较突出的优点:
app的扩展非常容易,如一个新的功能界面要加到旧版本的应用程序中,只需把这个新的功能界面做为一个插件,只开发这个小的插件就可以了,旧的应用程序可以保持不变,连编译打包都不需要。
缺点:
1.增加了主应用程序的逻辑难度
2.成熟稳定的解决方案较少
3.现阶段开放出来的插件化开发框架
1 Dynamic-load-apk 百度
2 Direct-Load-apk FinalLody
3 Android-Plugin-Framework limpoxe
4 ACDD bunnyblue
5 DynamicAPK 携程
6 DroidPlugin @cmzy, 360
7 Small wequick
这些框架的优缺点总结如下图:
可以看出Small支持较为全面。
下一篇将会讲解如何使用Small框架进行插件化开发