我们可以在一个Android Studio项目中拥有多个应用吗?

Bah*_*dil 48 android android-studio

我正在使用Android Studio开发Android应用程序.但是我在Android Studio中听说最好只在一个应用程序(每个应用程序一个项目)中只有一个应用程序,如果这是正确的,那么为许多项目打开许多帧将是非常浪费的.但是当我搜索时,我发现了

  • Android Studio项目= Eclipse工作区
  • Android Studio模块= Eclipse项目

现在,如果这是真的,这意味着Android Studio也可以支持多应用程序项目.如果是,那么,Android Studio中的每个应用程序都是独立的,就像在Eclipse中一样(即它们不会通过共享任何文件或设置来互相干扰)?或者我们可以在一个项目中拥有许多应用程序吗?如果我们可以那么有任何意义吗?

谢谢!

Ste*_*sen 56

是的,您可以创建一个额外的应用模块:

  1. 首先创建标准的手机和平板电脑Android项目,包括自动生成的应用模块.
  2. 添加新的应用模块:文件>新建>新模块...>手机和平板电脑模块
  3. 例如,完成向导并命名您的应用程序app2.

现在,您将在同一个项目中同时拥有appapp2.

要实际运行 app2,首先需要在Android Studio顶部工具栏的"下拉菜单"中选择它,在"开始"和"调试"图标旁边.您也可以通过运行配置:运行>运行...>编辑配置...并修改模块来执行此操作.


您还可以创建一个额外的库模块,非常适合单独的代码库,其中包含在更多应用程序或其他项目中共享的公共代码:

  1. 添加新的模块:File> New> New Module ...> Java Library.
  2. 完成向导并为您的库提供一个好名称,例如libgoodstuff.

现在libgoodstuffapp将驻留在同一个项目中.

要使应用程序源依赖于libgoodstuff,首先必须将库模块添加到项目中settings.gradle,如下所示:

include ':app', ':libgoodstuff'
Run Code Online (Sandbox Code Playgroud)

然后app/build.gradle你必须依赖于这样的库模块:

apply plugin: 'com.android.application'

···
dependencies {
    ···
    implementation project(path: ':libgoodstuff')
    ···
}
···
Run Code Online (Sandbox Code Playgroud)

  • 这是实际回答问题的答案之一。其他“答案”纯粹是问太多“为什么”。 (3认同)
  • 我认为,这是执行此操作的最佳方法。我需要使用通用代码保留通用模块。 (2认同)

小智 13

是的你可以.如果要创建新应用程序,请在项目内部执行以下操作:

现在,您将能够运行任一应用程序.这是在两个应用程序之间共享代码的绝佳方式,因为它允许您在一个位置保留和开发库.

在此输入图像描述

在此输入图像描述


Kai*_*Kai 8

您可以在同一个Android Studio项目中拥有多个应用程序模块.话虽如此,我还没有找到在项目中定义多个app模块的理由.

  • 如果你需要同一个应用程序的不同版本,Gradle的构建变体足够强大,可以满足99%的用例(我有一个项目有十几个变种,每个都有自己的自定义代码/ res).
  • 如果您正在编写不同的应用程序,那么最好将每个应用程序设置为自己的项目,这样应用程序就不会无意中改变彼此的行为.

不确定你的意思是"Android Studio中的每个应用程序都独立于Eclipse",但默认情况下每个模块都是它自己的世界,除非明确定义了与其他模块的依赖关系.

  • 两个共享公共库的应用程序怎么样?这是一个非常常见的要求,但Android Studio似乎不支持. (2认同)

act*_*ota 5

添加此作为答案,因为我还没有足够的评论声誉.

对于你的问题的答案 - 检查我提出的这个问题.这是你在同一条船吗?

TL; DR

我能够在同一个Android Studio项目中拥有多个应用程序,构建并运行它们没有任何问题.另一位成员在对该课题的评论中证实了我的主张.

@Android Studio专业人士:请查看以上链接并添加您的见解.这似乎是一个令人困惑的方面.

我的看法

我想我同意@Kai的回答.但有些情况下,我们希望多个应用程序具有公共库依赖项,并且不希望复制库依赖项.只要公共库依赖项只有公共代码而没有别的东西,多个应用程序就不会很好.单独的模块包含与应用程序相关的各个代码,这就是差异化的地方.

  • 你是什​​么意思_we希望多个应用程序有共同的库依赖_?如果这些依赖项在公共存储库中可用,则应在gradle构建脚本中使用声明性依赖项.如果您正在讨论在多个应用程序中共享您自己的代码,我建议使用声明性依赖关系系统,该系统具有私有工件存储库或使用mavenLocal()在本地工件存储库中安装依赖关系 (4认同)
  • 是.但我希望有一种简单的方法来编辑库模块的代码以及相同的Android Studio项目,而无需在项目之间切换以及处理将库工件推送/上传到工件存储库并将应用程序模块更新为拿起更新. (2认同)

归档时间:

查看次数:

35049 次

最近记录:

5 年,10 月 前