如何将另一个项目中的一个项目用作模块?

时间:2018-10-18 06:11:27

标签: java android build.gradle

我希望将Android项目模块化,以便将来使用时易于维护。我想知道是否有可能将一个Android项目用作另一个Android项目中的模块吗?

例如,假设在我的主要android项目中,我有三个用于登录,注册,忘记密码的按钮。我有三个单独的项目,分别用于登录,注册和忘记密码,并带有各自的视图,活动和库。如何在Android主项目中使用这些单独的android项目,因此当我单击主活动视图中的三个选项中的任何一个时,它将从这三个模块项目中加载相关视图吗? (单击主视图中的登录按钮,并从单独的登录项目活动中加载登录视图)。我试图摆弄构建文件和库模块导入,但无法完成。帮助我说这种方法是否可行?如果可能的话如何实现呢?

2 个答案:

答案 0 :(得分:3)

是的,有可能。 您当前的项目基本上也是一个模块。请参见app文件夹。

一种简单的方法是创建一个名称与当前模块不同的新模块(Android库),默认名称为app。我们称之为bigapp。该模块将具有所有属性,就像您的app一样,您也可以从调试配置中选择运行它。

转到settings.gradle并确保文件读取include ':app', ':bigapp'

要使用bigapp并调用其函数,请将其导入您的依赖项中。这将是应用模块的build.gradle文件。

dependencies {
    implementation project(":bigapp")
}

现在让我们从应用模块中启动MainActivity

startActivity(new Intent(this, com.lucemanb.bigapp.MainActivity.class));

您也可以在顶部导入它,只需调用MainActivity

import com.lucemanb.bigapp.MainActivity;

---

private void startActivity(){
    startActivity(new Intent(this, MainActivity.class));
}

答案 1 :(得分:3)

根项目中的

settings.gradle 包括每个项目。

include ':loginApp'
include ':signupApp'
include ':resetpasswordApp'

project(':loginApp').projectDir = file('path/to/LoginApp')
project(':signupApp').projectDir = file('path/to/SignupApp')
project(':resetpasswordApp').projectDir = file('path/to/ResetpasswordApp')

build.gradle 的主要模块

implementation project(':loginApp')
implementation project(':signupApp')
implementation project(':resetpasswordApp')