首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理多种口味..。指数增长?

管理多种口味..。指数增长?
EN

Stack Overflow用户
提问于 2016-01-27 09:17:46
回答 1查看 65关注 0票数 1

想象一下,在这样的情况下,我需要有带有或不带广告的APK版本,有或没有CustomJarSDK,以及三个市场,即GooglePlay、AmazonApps和SamsungApps。

在我的完美世界里,它应该只有7种味道:

  • 有广告
  • 无广告
  • 用CustomJarSDK
  • 无CustomJarSDK
  • 对于GooglePlay
  • 对于AmazonStore
  • 对于SamsungApps

在我的完美世界里,有一种方法可以把味觉结合在一起,例如:

  • 与Ads + SamsungApps + CustomJarSDK
  • 无Ads + GooglePlay
  • 等等..。

这有可能吗?或者你被诅咒和幻想拥有所有这些味道.?

  • 对于带有ads的GooglePlay
  • 用于GooglePlay与ads和CustomJarSDK
  • 对于没有ads的GooglePlay
  • 对于没有ads的GooglePlay和带有CustomJarSDK的
  • 对于带有ads的AmazonStore
  • 用于AmazonStore与ads和CustomJarSDK
  • 对于没有ads的AmazonStore
  • 对于没有ads的AmazonStore和带有CustomJarSDK的
  • 对于带有ads的SamsungApps
  • 用于SamsungApps与ads和CustomJarSDK
  • 对于没有ads的SamsungApps
  • 对于没有ads的SamsungApps和带有CustomJarSDK的
EN

回答 1

Stack Overflow用户

发布于 2016-01-27 10:59:40

你的问题很难回答。这取决于哪种资源在任何口味上都是不同的。

目前,无法扩展或合并口味。

但是,您可以使用一些技巧来改进您的项目。

例如,您可以为不同的风格使用公共源集资源

就像这样:

代码语言:javascript
复制
+ App // module
|- src
   |- common // shared srcDir
      |- java
   + flavor1
      |- java
   + flavor2
      |- java
   + flavor3
   + flavor4

然后你可以定义这样的事物:

代码语言:javascript
复制
 sourceSets {            
        flavor1.java.srcDir 'src/common/java'
        flavor2.java.srcDir 'src/common/java'
        flavor3.java.srcDir 'src/common/java'
    }

在您的情况下,您应该评估口味:

  • 对于带有ads的GooglePlay
  • 用于GooglePlay与ads和CustomJarSDK
  • 对于没有ads的GooglePlay
  • 对于没有ads的GooglePlay和带有CustomJarSDK的

可以使用公共块:

代码语言:javascript
复制
 sourceSets {
            flavor1.java.srcDir = ['src/common/java', 'src/flavor1/java']
            flavor2.java.srcDir = ['src/common/java', 'src/flavor2/java']
            flavor3.java.srcDir = ['src/common/java', 'src/flavor3/java']
        }

每个风味都可以使用在另一个风味中定义的相同的源集。

像这样的事:

代码语言:javascript
复制
flavor2{
        java.srcDirs = sourceSets.flavor1.java.srcDirs
        res.srcDirs = sourceSets.flavor1.res.srcDirs
        resources.srcDirs = sourceSets.flavor1.resources.srcDirs
        aidl.srcDirs = sourceSets.flavor1.aidl.srcDirs
        renderscript.srcDirs = sourceSets.flavor1.renderscript.srcDirs
        assets.srcDirs = sourceSets.flavor1.assets.srcDirs
    }

另外,每种风格都可以定义多个资源文件夹,。例如:

代码语言:javascript
复制
android.sourceSets {
   flavor1.res.srcDirs = ['src/main/res', src/main/res2']
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35033162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档