android - 如何在 Android Studio 中管理模块的最佳方法
问题描述
我想让我未来的项目非常模块化,在所有项目中我都非常依赖 Firebase、Ads、RoomDatabase。
所以我开始将所有这些的样板代码模块化到单独的模块中,其中一个主要模块是 baseProject,它处理所有这些模块之间的接口,我的主要问题是每次我同步项目时需要 15-20分钟(在 Macbook pro 13 英寸 2017 型号中运行)而没有这些模块的项目构建速度相当快。
以下是settings.gradle
将所有外部模块链接到新项目的链接,如下所示:
这就是 baseproject 如何链接到 app.gradle 文件中的新项目:
最后这是典型的模块结构的样子:
此外,有关上述模块如何处理 firebase 库的更多信息,这就是 Gradle for firebase 模块的外观。
问题
我只需要在构建 gradle 时减少同步时间,这花费了太多时间,而且我相信它每次都会同步每个模块中的所有依赖项,我只需要让它同步所有内容并确保下次构建时间减少到几分钟,这是可以接受的。
帮助表示赞赏
解决方案
启用离线模式:如果您的网络连接速度较慢,当 Gradle 尝试使用网络资源来解决依赖关系时,您的构建时间可能会受到影响。你可以告诉 Gradle 避免使用网络资源,方法是只使用它在本地缓存的工件。
要在使用 Android Studio 构建时离线使用 Gradle,请执行以下操作 ->
- 通过单击文件 > 设置(在 Mac 上,Android Studio > 首选项)打开首选项窗口。
- 在左侧窗格中,单击构建、执行、部署 > Gradle。
- 选中离线工作复选框。
- 单击应用或确定。
推荐阅读
- html - 带有 toggleClass 的 Cookie 存储
- c++ - 向量定义是什么意思?
- excel - excel vba在列表视图上排序int值
- reactjs - Reactjs 使用默认导出功能动态导入 js 文件
- python - 如何对给定的数据集执行以下转换?
- azure-databricks - SparkR 中的 StringInderxer 和一种热编码
- c# - 使用 Url.Link 在 Web API 中生成链接
- javascript - 如何使用函数传播数组并在 Promise.all() 中调用它们
- azure - Azure 策略 - 拒绝使用特定标记创建资源
- c# - EF 6:添加具有默认值的新属性不起作用