如何为Android设置不同的构建环境?

时间:2011-06-01 04:15:24

标签: android

我有几十个api密钥用于facebook和twitter以及许多其他服务,具有不同的密钥值的标准方法是什么,这取决于我是在进行开发构建而不是分段构建还是生产构建?

2 个答案:

答案 0 :(得分:5)

您可以使用静态标志在开关块中使用它来定义键。这适用于带有两个或三个备用键的简单项目。

如果您真的有这么多,要在多个项目中使用,我建议您将它们添加到帮助程序类中,这样您就可以最小化类中的代码更改。类似的东西:

public class BuildHelper {
    public static final int DEBUG=0;
    public static final int STAGING=1;
    public static final int PRODUCTION=2;

    public static int BUILD;

    public static String getFbKey() {
      switch(BUILD) {
        case DEBUG: return "xxx";
        case STAGING: return "yyy";
        case PRODUCTION: return "zzz"; 
      }
      return null;
    }
    public static String getTwitterKey() {
      switch(BUILD) {
        case DEBUG: return "xxx";
        case STAGING: return "yyy";
        case PRODUCTION: return "zzz"; 
      }
      return null;
    }
}

并将其用作:

public class YourClass extends Activity {

    public static String FB_KEY;
    public static String TWITTER_KEY;
    //etc.

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    BuildHelper.BUILD=BuildHelper.DEBUG; // or STAGING or PRODUCTION
    FB_KEY = BuildHelper.getFbKey();
    TWITTER_KEY = BuildHelper.getTwitterKey();
    //etc.
  }
}

答案 1 :(得分:0)

我会将它们保存在单独的属性文件中,并根据您正在执行的操作引用构建脚本/ eclipse类路径中的适用属性文件。