我想通过实现一个配置参数来简化开发,该参数确定应用程序应该在“DEV”模式还是“PROD”模式下运行。
我希望可以从任何文件访问此参数(基于此参数将执行不同的代码块)。
存储此参数的最实用方法是什么(用户无法访问或更改)?
如何从应用程序中访问它?
我想通过实现一个配置参数来简化开发,该参数确定应用程序应该在“DEV”模式还是“PROD”模式下运行。
我希望可以从任何文件访问此参数(基于此参数将执行不同的代码块)。
存储此参数的最实用方法是什么(用户无法访问或更改)?
如何从应用程序中访问它?
从 ADT 17 (IIRC) 开始,您会自动将其作为自动生成BuildConfig
类的一部分。
该DEBUG
字段在开发时始终是true
,但是当您导出已签名或未签名的 apk 时,它设置为false
. 您可以将其用作:
if(BuildConfig.DEBUG) {
//Debug mode
}
或者反过来:
if(!BuildConfig.DEBUG) {
//Release mode
}
您可以使用枚举:
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
}
您的一个 Activity 中的静态字段?或者我错过了什么?
public static boolean isDev = true;
你可以在onCreate
你的主要活动中设置它。
您可以创建一个新类并在那里添加您的变量。您还可以添加一些方法,这些方法将在开发模式下显示有关您的应用程序的一些详细信息。
public class Console{
public final static boolean isDev = true;
public static error(String tag, String msg){
if(isDev){
Log.e(TAG, msg);
}
}
}