Android:在dev / prod环境下运行应用程序?

时间:2013-01-14 09:56:03

标签: android

我想通过实现一个配置参数来确保应用程序是在“DEV”模式还是“PROD”模式下运行,从而使开发更容易。

我希望可以从任何文件访问此参数(基于此参数将执行不同的代码块)。

存储此参数的最实用方法是什么(用户无法访问或更改)?

如何从应用程序中访问它?

4 个答案:

答案 0 :(得分:5)

从ADT 17(IIRC)开始,您将自动将其作为自动生成的BuildConfig类的一部分。

开发时DEBUG字段始终为true,但在导出已签名或未签名的apk时,其设置为false。您可以将其用作:

if(BuildConfig.DEBUG) {
    //Debug mode
}

或者相反:

if(!BuildConfig.DEBUG) {
    //Release mode
}

答案 1 :(得分:4)

您可以使用枚举:

public enum BuildType {

    Release, Pilot, Debug;
}

并将其分配给全局变量:

public static final BuildType BUILD_TYPE = BuildType.Debug;

您甚至可以在枚举中创建一些允许您使用的方法 切换应用程序的特定部分。

现在你可以做这样的事情:

if (MyApplication.BUILD_TYPE != BuildType.Release) {
    // some code that does not go in the release
}

答案 2 :(得分:1)

您的某个活动中的静态字段?或者我错过了什么?

public static boolean isDev = true;

您可以在主要活动的onCreate中进行设置。

答案 3 :(得分:0)

您可以创建一个新类并在那里添加变量。 您还可以添加一些方法,这些方法将以开发模式显示有关您的应用的一些详细信息。

public class Console{
  public final static boolean isDev = true;
  public static error(String tag, String msg){
    if(isDev){
      Log.e(TAG, msg);
    }
  }
}