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

时间:2017-05-04 08:43:36

标签: android android-productflavors android-build-flavors

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

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

3 个答案:

答案 0 :(得分:4)

  

构建变体是Gradle使用一组特定规则的结果   组合构建中配置的设置,代码和资源   类型和产品口味。虽然您没有配置构建   直接使用变体,您可以配置构建类型和产品   形成它们的味道。

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

    }
  else
   {

   }

阅读 Building multiple flavors of an Android

答案 1 :(得分:2)

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

请完成可以帮助您的 link

答案 2 :(得分:1)

您可以通过一种简单的方式完成此操作。您现在应该在项目中有一个名为“ standard ”的文件夹。只需在“标准”文件夹所在的同一文件夹中创建另一个名为“ customConfig ”的文件夹(或者可能是在gradle同步后创建的)。

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

希望这有帮助!