2017-05-04 50 views
3

我的應用程序中有兩個構建變體,一個是標準的應用程序版本,第二個是定製應用程序。不同的代碼在不同的構建變體

productFlavors { 
     customConfig { 
      minSdkVersion 14 
      applicationId 'es.com.custom' 
      targetSdkVersion 22 
      versionCode 3 
      versionName '3.0.0' 
     } 
     standard { 
      minSdkVersion 14 
      applicationId 'es.com.standard' 
      targetSdkVersion 22 
      versionCode 3 
      versionName '3.0.0' 
     } 

對於定製我要實現新的功能,但只爲定製,所以這些新功能將不可用的標準版本。我不知道我要做什麼。

1.-兩個班,一個符合標準規定,一個與定製要求
2:在標準的類做這樣的事情:

if (getPackageName()==customConfig) 
    // do the custom things 
    else 
    //do the standard things 

回答

2

構建變體搖籃的結果使用一組特定的規則 來組合在您的構建 類型和產品風味中配置的設置,代碼和資源。雖然您不直接配置生成 變體,但您確實配置構成它們的構建類型和產品 。

if(BuildConfig.Flavor.equals("customConfig")) 
    { 

    } 
    else 
    { 

    } 

Building multiple flavors of an Android

2

您必須爲每一個味源目錄。 所以你將能夠維護一個單獨的文件的具體味道。

請通過link這將幫助你。

1

你可以用一種簡單的方法做到這一點。您的項目中應該有一個名爲「標準」的文件夾。只需在「標準」文件夾所在的同一文件夾中創建另一個名爲「customConfig」的文件夾(或者它可能是在Gradle同步後創建的)。

在您的「customConfig」中創建另一個名爲「res」的文件夾(您可能已經擁有了它)。然後創建另一個文件夾「值」。在「值」文件夾中,您可以創建您的值文件。將文件命名爲'values.xml'並返回到您的項目。你「values.xml」文件應該是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="custom_app_id">es.com.custom</string>s 
</resources> 

現在,在你的代碼,你可以檢查你是哪個變量環境:

if (getPackageName().equals(getString(R.string.custom_app_id)))// for custom 
// do the custom things 
else 
//do the standard things 

希望這有助於!

相關問題