不同构建变体中的不同代码

Different code in different build variant

我的应用程序中有两个构建变体,一个是标准应用程序版本,第二个是自定义应用程序。

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.- 两个 class,一个是标准要求,一个是自定义要求
2.- 在标准 class 中做类似的事情:

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

Build variants are the result of Gradle using a specific set of rules to combine settings, code, and resources configured in your build types and product flavors. Although you do not configure build variants directly, you do configure the build types and product flavors that form them.

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

    }
  else
   {

   }

阅读Building multiple flavors of an Android

您必须为每种风格创建源目录。 因此,您将能够为特定口味维护一个单独的文件。

请仔细阅读对您有帮助的link

您可以通过一种简单的方式完成此操作。您的项目中现在应该有一个名为“standard”的文件夹。只需在“standard”文件夹是。

在您的“customConfig”中创建另一个名为 "res" 的文件夹(您可能已经有了它)。然后创建另一个文件夹 "values"。在 "values" 文件夹中,您可以创建您的值文件。将文件命名为“values.xml”,并将 return 命名为您的项目。你的“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

希望对您有所帮助!