不同的產品,不同風味的方法,我需要這樣的:如何調用從普通的java類
任何方法:
if(for one flavor)
do something
else
do something
我如何處理從Java口味?
不同的產品,不同風味的方法,我需要這樣的:如何調用從普通的java類
任何方法:
if(for one flavor)
do something
else
do something
我如何處理從Java口味?
您可以爲flavor指定文件。如果我是你,我會做這樣的事情: 把一個文件放在main/java/your/package
源文件中,我們把它叫做CustomClass.java
。 它包含了這樣的事情:
public class CustomClass {
public static void myCustomMethod() {
//Do something here...
}
}
之後,你可以在風味名的文件夾中創建(旁邊的主文件夾)這個類的味道特定版本。 所以把CustomClass.java在這裏:your_flavor_name/java/your/package
,做點別的:
public class CustomClass {
public static void myCustomMethod() {
//Do something here for that specific flavor!
}
}
構建將合併文件,並使用特定的人對你的味道,並使用主要版本,如果沒有特殊味道的文件中找到。您可以將它用於drawables,以及其他所有文件(assets,...)。
你只需要在此之後創建一個新的味道。在您的gradle這個補充一點:
productFlavors {
your_flavor_name {
applicationId "your.package"
}
}
更多的東西在這裏:http://developer.android.com/tools/building/configuring-gradle.html
感謝您的回答@GaborNovak
其實,我搜索類似的東西爲通用類:
if("flavor-name".equals(getApplicationContext().getPackageName())){
myIntent.setClass(thisClass.this, nextClass.class);
}
else {
myIntent.setClass(thisClass.this, nextClass.class);
}
我覺得有點混亂。當我編寫getApplicationContext.getpackageName - >它會在構建gradle中定義選定flavor的application_id。 當我編寫BuildConfig.APPLICATION_ID - >它獲取包名稱。有沒有人可以解釋這一邏輯的背後?這不是令人困惑嗎?
定義兩個string.xml
用於兩個product-flavors
分開並添加通用名稱的字符串中的每個,例如,在第一香味string.xml
添加<string name="flavor">Flavor One</string>
和在第二香味string.xml
添加<string name="flavor">Flavor Two</string>
。現在在該方法中,獲取字符串flavor
的值並相應地添加代碼行。 因爲,對於這兩種口味,絃樂味道將有兩個不同的值。
在productFlavor創建的東西()類:
主要常見來源:
main\java\com.exmaple.test\class.java - > something()
Flavor1來源:
flavor\java\com.exmaple.test\class.java - > something()
Flavor2來源:
flavor\java\com.exmaple.test\class.java - > something()