Android Studio - 使用模块生成多个品牌apks

时间:2017-05-15 15:09:22

标签: java android module

对不起,我真的不知道如何在我的情况下安排标题,但我现在会尝试解释。假设我有一些应用程序通过Retrofit使用一些休息调用,并通过get / post api调用消耗一些数据。

现在我需要创建多个类似的应用程序,每个应用程序需要具有不同的外观(启动,图标等),不同的名称和不同的URL来访问后端api(其余的webservices),但所有其余的,包括布局和逻辑将是相同的

我的想法是使用多个模块并使所有模块使用相同的共享核心。每个模块都将包含自己的drawable和一些配置(如api的url)和自己的签名密钥。每个模块应使用自己的密钥生成单独的apk。

这可以进入Android Studio吗?如何在模块之间共享逻辑?

1 个答案:

答案 0 :(得分:2)

You can use "Product Flavors", it allows you to build multiple apps with same core code,

here an example gradle config :

android {

  signingConfigs {
      flavor1 {
          storeFile file("keystore")
          storePassword "secret"
          keyAlias "aliasForFlavor1"
          keyPassword "secretFlavor1"
      }

      flavor2 {
          storeFile file("keystore")
          storePassword "secret"
          keyAlias "aliasForFlavor2"
          keyPassword "secretFlavor2"
      }
  }

defaultConfig {...}
buildTypes {...}
productFlavors {
  def demoSigning = signingConfigs.flavor1
  def fullSigning = signingConfigs.flavor2
    demo {
        signingConfig demoSigning
        applicationIdSuffix ".demo"
        versionNameSuffix "-demo"
    }
    full {
        signingConfig fullSigning
        applicationIdSuffix ".full"
        versionNameSuffix "-full"
    }
  }
}

it will create multiple folders for source files for every flavors you created before. So, you can separate your code to have different URL, requests and drawables etc...

you can have more detail here : https://developer.android.com/studio/build/build-variants.html