2016-11-07 34 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