我希望将Android项目模块化,以便将来使用时易于维护。我想知道是否有可能将一个Android项目用作另一个Android项目中的模块吗?
例如,假设在我的主要android项目中,我有三个用于登录,注册,忘记密码的按钮。我有三个单独的项目,分别用于登录,注册和忘记密码,并带有各自的视图,活动和库。如何在Android主项目中使用这些单独的android项目,因此当我单击主活动视图中的三个选项中的任何一个时,它将从这三个模块项目中加载相关视图吗? (单击主视图中的登录按钮,并从单独的登录项目活动中加载登录视图)。我试图摆弄构建文件和库模块导入,但无法完成。帮助我说这种方法是否可行?如果可能的话如何实现呢?
答案 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')