(Dis-)在Android Studio项目中拥有多个模块的优势?

问题描述 投票:39回答:2

是否有利于Android Studio项目中的多个模块只有一个大的应用程序模块?

我知道Android Modules一般和SOLID的优点所以我的重点是特别考虑构建性能。 gradle可以进行增量构建,如果只有一个模块发生变化,那么其他模块不需要处理吗?

这是显而易见的还是有相当大的开销?

android performance android-studio android-gradle android-module
2个回答
31
投票

拥有多个模块而不是创建单个大型应用程序模块是非常有利的。以下是要点:

  1. 如果您发现编译时间花费的时间较长,那么您可以从gradle中禁用该模块,而不是暂时处理并更快地编译它。
  2. 模块帮助我们将项目划分为离散的功能单元。您可以创建一个包含所有纯Java bean的数据模块,如果您在同一个域中,则可以由多个应用程序使用。例如。财务域可以有两个应用程序,一个用于查看客户的策略,另一个可以用于保险代理查看相同的数据。但是数据模块可以在所有应用程序之间共享,甚至数据模块也可以从服务器或API团队借用。数据模块可以单独测试,没有任何Android依赖关系,任何人都知道java可以编写测试用例。
  3. 每个模块都可以独立构建,测试和调试。
  4. 在您自己的项目中创建代码库时,或者您希望为不同的设备类型(如电话和可穿戴设备)创建不同的代码和资源集时,其他模块通常很有用,但要将所有文件保存在同一项目中并共享一些代码。
  5. Android app模块和Library模块也不同。
  6. 您可以根据ASOP的API版本保留两个不同版本的模块。

You can have a look for more on android developer resource

How modularization can speed up your Android app’s built time

App modularization and module lazy loading at Instagram and beyond

Modularizing Android Applications by Mauin

Survey on how Android developers were modularising their apps


15
投票

昨天有一篇关于Medium的文章,它正好解决了我的问题:

https://medium.com/@nikita.kozlov/how-modularisation-affects-build-time-of-an-android-application-43a984ce9968#.at4n9imbe

tl;博士:

首先也是最重要的,假设是正确的,模块化项目可以显着加快构建过程,但不适用于所有配置。

其次,如果以错误的方式完成拆分,那么构建时间将大大增加,因为Gradle构建了库模块的发布和调试版本。

第三,对于具有多个模块的项目,以测试驱动的方式工作更容易,因为构建一个小的库模块比整个项目更快。

第四,并行做很多事情会减慢构建速度。因此拥有更强大的硬件是一个好主意。

您可以在下面找到本文中描述的所有实验的结果

Update

在Google I / O '17上解决:https://youtu.be/Hx_rwS1NTiI?t=23m17s

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.