我正在开发android应用程序。在应用程序中,我需要有多个服务器,如开发、暂存和生产。对于每个环境,我还必须指定其他敏感密钥。我现在正在手动更改每个环境的标志。我想用gradle来实现自动化。根据gradle文档,默认情况下有一个名为构建类型的术语,如发布和调试。还有产品风味。我不知道该用哪一个以及如何使用。如果有任何建议,我将不胜感激。
这就是我在Application.java中更改应用程序环境的方式
public static final int APP_ENV = 2;//2 => dev, 1 => staging, 0 => production
这就是我区分url和其他密钥的方法
switch (envVar){
case DEV :
url ="http://a.com";
google_analytic_id="aaaa..";
....
break;
case STAG :
url = "http://b.com";
google_analytic_id="bbbb..";
.....
break;
case PRO :
google_analytic_id="cccc..";
.....
break;
default:
url ="http://a.com";
break;
}
您应该为此使用风味。部分build.gradle
文件可能看起来像:
productFlavors {
production {
buildConfigField 'String', 'URL', '"http://a.com"'
}
development {
buildConfigField 'String', 'URL', '"http://b.com"'
}
}
它将用您提供的信息填充CCD_ 2。然后在Java代码中,您可以执行以下操作:
System.out.println("My URL is " + BuildConfig.URL);
您可以使用以下工具创建您的特定构建:
gradle assembleProductionDebug
或
gradle assembleDevelopmentDebug
(您可以根据需要将"调试"切换为"发布")。
有关如何使用产品口味的详细信息,请访问http://developer.android.com/tools/building/configuring-gradle.html