Android中的两个工程术语——模块化组件化

在谈起插件化,我们有必要对组件化有所区分。

# 1.组件化

作为多年开发经验的人,现在项目基本都采用模块化,其实组件化模块化都是一种编程思想。是为了代码复用.

组件化是为了代码的高度复用而出现的,我们可以将不同模块的业务逻辑做成一个独立的Library,并且可以单独对Library进行版本管理,可以供任何想要用到的APK使用。

这样做的好处:不仅提到代码的复用性,而且帮我项目业务解耦,提升开发效率。

# 2. 插件化

插件化是一种技术

插件化是为了解决应用越来越大,占用内存越来越高,APK体量过大,解决65535等复杂问题而出现的。插件化会把各个解耦的业务单独封装到APK插件中,通过插件依附于宿主APK中,从而完成功能的实现。另外这些独立的APK插件可以打包成应用。

举个例子:

比如手淘,不仅有淘宝这个宿主应用本身的一些功能,还有如聚划算,书城这类其他应用的也需要接入进来。

假如没有采用插件化技术,那么聚划算的开发人员就需要同时维护两套代码,一套是自己的聚划算项目,一套是接入到手淘的聚划算项目,出现BUG也得同时去修改两套代码,这将在管理和维护,以及开发效率上非常糟糕。

但如果我们采用插件化技术,将聚划算做成一个插件,那么哪个应用需要接入聚划算功能,只需要将APK包接入进来即可。在代码上只需要进行compile和gradle的配置,而插件化内部的代码不用担心。