2016-11-07 31 views
0

我有一个约30种产品风味的项目。其中一些产品口味需要共享代码,而不与大多数产品口味共享。我可以将代码分配给风味组吗?风味维度源代码

回答

0

1)你知道如何为特定的产品口味创建文件夹吗? 您可以创建一个文件夹,其中包含将用于某种特定风味组合的来源或资源。例如,我们在一个维度中有“beta”,“prod”和另一个维度中的“newApi”,“oldApi”。对于所有的风味组合,我们使用一个类实现,除非它使用新的API进行测试。因此,我们发现gradle如何命名这个buidle变体(betaNewApi),创建文件夹项目/ app/src/betaNewApi并将我们的类放在那里,从而保存包的项目结构。结果,需要这个特定类别的类别只有在这种类型的组合中才采用通常的或特殊的类别。

Our example

2)如果你需要不共享一整类,但只有一些代码小部分,你可以使用运行时检查口味:

if (BuildConfig.FLAVOR_releaseType.equals("prod")) 
    && BuildConfig.FLAVOR_apiLvl.equals("newApi")) { 
     // here is your shared code 
} 

我们提取出像“刺常数“放入我们的应用程序类中,并以这种方式使用它们。

+0

在gradle中我该怎么做才能说“如果味道在维度x中,只编译这个库”? –

+0

而不是使用 的'编译 “com.android.support:support-v4:$supportLibraryVersion”' 您应该使用 'betaOldApiComplie “com.android.support:support-v4:$supportLibraryVersion”' 这里, _beta_和_oldApi_两种不同的口味 – Gaket