项目发展到一定程度,就必须进行模块的拆分。模块化是一种指导理念,其核心思想就是分而治之、降低耦合。而在 Android 工程实践,目前有两种途径,一个是组件化,一个是插件化。
组件化开发
说起组件化少不了提起AS模块化的概念,其实两种方式的本质思想是一样的,都是为了代码重用和业务解耦。
模块化
模块(Module),Android Studio提出的概念,它是根据不同关注点将原项目中共享的部分或业务抽取出来形成独立module,这就类似我们集成的第三方库的SDK。 Module包含两种格式: application, library。application格式的module就可以打包成一个apk,一个library可以形成一个aar包(类似java中的jar包)。在我们实际开发中,通常会抽取第三方库、使用封装的网络库、图片库、视频库、Utils工具类、自定义View 等到一个共有的common模块中,其他模块在配置Gradle依赖后,就能够调用这些API。它 相比于包来讲,模块更灵活,耦合更低,随意插拔,想引入哪个就引入哪个。根据不同的关注点,将一个项目的可以共享的部分抽取出来,形成独立的Module,就是模块化。
组件化
组件化是基于模块化的,组件化是建立在模块化思想上的一次演进,一个变种。组件化本来就是模块化的概念,但是组件化的核心是:模块角色的可转换性,可以在打包时是设置为library,开始调试运行是设置成application。
通俗的讲组件化就是基于可重用的目的,将一个大的软件系统按照分离关注点的形式,拆分成多个独立的组件。 组件的出现是为了解决全局工程中有很多重复代码的问题,是为了复用,而且划分力度是相对较小的模块。组件化的另一个目的是为了解耦,把系统拆分成多个组件,分离组件边界和责任,便于独立升级和维护。

本文探讨了Android的组件化和插件化开发,包括模块化、组件化的基本概念,组件化开发的结构及其优点。插件化则是将apk拆分成可动态加载的子apk,适用于功能繁多的应用。组件化更适用于功能相对集中的项目,而插件化在兼容性和开发节奏上存在挑战。最后,建议大多数情况下组件化是更好的选择。
最低0.47元/天 解锁文章
981

被折叠的 条评论
为什么被折叠?



