是否有利于Android Studio项目中的多个模块只有一个大的应用程序 -模块?
我一般都了解Android模块和SOLID的优点,所以我的重点是特别考虑构建性能.gradle可以进行增量构建,如果只有一个模块发生变化,那么其他模块不需要处理吗?
这是显而易见的还是有相当大的开销?
拥有多个模块而不是创建单个大型应用程序模块是非常有利的.以下是要点:
如果您发现编译时间花费的时间较长,那么您可以从gradle中禁用该模块,而不是暂时处理并更快地编译它.
模块帮助我们将项目划分为离散的功能单元.您可以创建一个包含所有纯Java bean的数据模块,如果您在同一个域中,则可以由多个应用程序使用.例如.财务域可以有两个应用程序,一个用于查看客户的策略,另一个可以用于保险代理查看相同的数据.但是数据模块可以在所有应用程序之间共享,甚至数据模块也可以从服务器或API团队借用.数据模块可以单独测试,没有任何Android依赖关系,任何人都知道java可以编写测试用例.
每个模块都可以独立构建,测试和调试.
在您自己的项目中创建代码库时,或者您希望为不同的设备类型(如电话和可穿戴设备)创建不同的代码和资源集时,其他模块通常很有用,但要将所有文件保存在同一项目中并共享一些代码.
Android app模块和Library模块也不同.
您可以根据ASOP的API版本保留两个不同版本的模块.
您可以在Android开发人员资源上查看更多信息
模块化如何加速Android应用的构建时间
Instagram及更高版本的应用程序模块化和模块延迟加载
Mauin模块化Android应用程序
昨天有一篇关于Medium的文章,它正好解决了我的问题:
https://medium.com/@nikita.kozlov/how-modularisation-affects-build-time-of-an-android-application-43a984ce9968#.at4n9imbe
TL;博士:
首先也是最重要的,假设是正确的,模块化项目可以显着加快构建过程,但不适用于所有配置.
其次,如果以错误的方式完成拆分,那么构建时间将大大增加,因为Gradle构建了库模块的发布和调试版本.
第三,对于具有多个模块的项目,以测试驱动的方式工作更容易,因为构建一个小的库模块比整个项目更快.
第四,并行做很多事情会减慢构建速度.因此拥有更强大的硬件是一个好主意.
您可以在下面找到本文中描述的所有实验的结果
在Google I/O '17上解决:https://youtu.be/Hx_rwS1NTiI ? t = 23m17s