我想通过实现一个配置参数来确保应用程序是在“DEV”模式还是“PROD”模式下运行,从而使开发更容易。
我希望可以从任何文件访问此参数(基于此参数将执行不同的代码块)。
存储此参数的最实用方法是什么(用户无法访问或更改)?
如何从应用程序中访问它?
答案 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);
}
}
}