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

时间:2015-09-06 03:04:53

标签: android android-studio

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

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

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

谢谢!

5 个答案:

答案 0 :(得分:46)

是的,您可以创建一个附加的应用模块

  1. 首先制作标准手机&平板电脑Android项目,包括自动生成的应用模块。
  2. 添加新的应用模块:文件>新>新模块...>电话&平板电脑模块
  3. 完成向导并将您的应用程序命名为 app2
  4. 现在,您在同一个项目中同时拥有 app app2

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

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

    1. 添加新的模块:文件>新>新模块...> Java Library。
    2. 完成向导并为您的图书馆提供一个好名字,例如 libgoodstuff
    3. 现在 libgoodstuff app 将驻留在同一个项目中。

      要使 app 来源取决于 libgoodstuff ,首先必须将库模块添加到项目settings.gradle,如下所示:

      include ':app', ':libgoodstuff'
      

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

      apply plugin: 'com.android.application'
      
      ···
      dependencies {
          ···
          implementation project(path: ':libgoodstuff')
          ···
      }
      ···
      

答案 1 :(得分:13)

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

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

enter image description here

enter image description here

答案 2 :(得分:7)

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

  • 如果你需要同一个应用程序的不同版本,Gradle的build variant功能强大到足以满足99%的用例(我有一个包含十几个变种的项目,每个都有自己的自定义代码/ res)。
  • 如果您正在编写不同的应用程序,那么最好将每个应用程序设置为自己的项目,以便应用程序不会无意中改变彼此的行为。

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

答案 3 :(得分:5)

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

对于您的问题的答案 - 请检查我提出的question。这是你在同一条船吗?

<强> TL; DR

  

我能够在同一个Android Studio项目中拥有多个应用,无需任何问题即可构建和运行它们。另一名成员   在对该课题的评论中证实了我的主张。

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

我的

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

答案 4 :(得分:0)

是的,有可能。如现有答案所示,在同一个Android Studio项目中创建其他应用程序模块非常简单。 因此,我将尝试回答潜在的问题,为什么有人可能需要它。

将多个完全独立的应用程序放在一个项目中绝对不值得。

但是,如果您的应用足够大,则可以通过将单独的功能放入单独的模块中而受益。您还可以为每个功能创建一个单独的可执行应用程序模块,以便:

  • 分别启动/调试每个功能
  • 在每次编译/删除/将所有内容放入一个apk中节省一些时间
  • 鼓励团队/开发人员独立工作,甚至在单独的存储库中。

主要应用模块只能用于将现有功能组合在一起。

我最近创建了一篇文章,展示了这种方法,在其中我尝试更详细地解释所有内容:https://medium.com/@domplebump/multiple-application-modules-in-one-android-project-36e86ceb8a9