如何判断是debug还是release
2017-03-29 16:29
423 查看
1.在ant中 使用BuildConfig类修改参数值
public final class BuildConfig {
public static final boolean DEBUG = false;
...
}
2.如果想自定义debug,比如log
buildTypes {
debug {
buildConfigField "boolean","LOG_DEBUG","true"
}
release {
buildConfigField "boolean","LOG_DEBUG","false"
}
}
使用:BuildConfig.LOG_DEBUG
3.使用AndroidManifest.xml中的meta-data
<meta-data
android:name="Logs.enable"
android:value="${LogEnable}"
/>
然后在gradle中配置buildTypes;
buildTypes {
debug {
manifestPlaceholders = [LogEnable : true]
}
release {
manifestPlaceholders = [LogEnable : false]
}
}
最后在工程代码中加载meta-data的数据
ApplicationInfo appInfo = null;
try {
appInfo = this.getPackageManager()
.getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA);
boolean enable=appInfo.metaData.getBoolean("Logs.enable");
Log.d("MyApplication","Logs.enable = "+enable);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
4.在AndroidManifest.xml中设置其debug属性
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:debuggable="true">
&ApplicationInfo.FLAG_DEBUGGABLE
不推荐这种方法。最好还是由打包方式决定。
5.应用程序中来判断
public static boolean isApkDebugable(Context context,String packageName) {
try {
PackageInfo pkginfo = context.getPackageManager().getPackageInfo(
packageName, 1);
if (pkginfo != null ) {
ApplicationInfo info= pkginfo.applicationInfo;
return (info.flags&ApplicationInfo.FLAG_DEBUGGABLE)!=0;
}
} catch (Exception e) {
}
return false;
}
public final class BuildConfig {
public static final boolean DEBUG = false;
...
}
2.如果想自定义debug,比如log
buildTypes {
debug {
buildConfigField "boolean","LOG_DEBUG","true"
}
release {
buildConfigField "boolean","LOG_DEBUG","false"
}
}
使用:BuildConfig.LOG_DEBUG
3.使用AndroidManifest.xml中的meta-data
<meta-data
android:name="Logs.enable"
android:value="${LogEnable}"
/>
然后在gradle中配置buildTypes;
buildTypes {
debug {
manifestPlaceholders = [LogEnable : true]
}
release {
manifestPlaceholders = [LogEnable : false]
}
}
最后在工程代码中加载meta-data的数据
ApplicationInfo appInfo = null;
try {
appInfo = this.getPackageManager()
.getApplicationInfo(getPackageName(),
PackageManager.GET_META_DATA);
boolean enable=appInfo.metaData.getBoolean("Logs.enable");
Log.d("MyApplication","Logs.enable = "+enable);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
4.在AndroidManifest.xml中设置其debug属性
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:debuggable="true">
&ApplicationInfo.FLAG_DEBUGGABLE
不推荐这种方法。最好还是由打包方式决定。
5.应用程序中来判断
public static boolean isApkDebugable(Context context,String packageName) {
try {
PackageInfo pkginfo = context.getPackageManager().getPackageInfo(
packageName, 1);
if (pkginfo != null ) {
ApplicationInfo info= pkginfo.applicationInfo;
return (info.flags&ApplicationInfo.FLAG_DEBUGGABLE)!=0;
}
} catch (Exception e) {
}
return false;
}
相关文章推荐
- 如何判断Assembly是Debug还是Release?
- Xcode/iOS: 如何判断代码运行在DEBUG还是RELEASE模式下?
- Android获取32位应用签名及如何判断该签名为debug还是release
- Android获取32位应用签名及如何判断该签名为debug还是release
- 关于如何判断程序和类库是Debug 还是 Release 的问题
- 如何判断代码运行在DEBUG还是RELEASE模式下?
- 如何判断是linux/windows库,module或程序debug还是release
- iOS: 如何判断代码运行在DEBUG还是RELEASE模式下?
- iOS: 如何判断代码运行在DEBUG还是RELEASE模式下?
- [你必须知道的.NET]第三十五回,判断dll是debug还是release,这是个问题
- swift如何判断debug模式和release模式
- 关于如何查看自己浏览器的FlashPlayer插件是debug还是release
- 如何判断当前是DEBUG/还是RELEASE
- 安卓获取32位应用签名及如何判断该签名为debug或release模式
- 性能优化——判断dll文件是debug还是release
- Android 判断是开发debug模式,还是发布release模式的方法
- 用程序判断设置的是debug还是release以及assert在debug和release版本中的不同行为
- 【原创】如何确定 在运行时 flash player是 debug 还是 release模式 国外代码 不可尽信= =;
- 在程序里判断编译的是debug还是release版本
- vc判断是32位编译还是64位编译判断是debug编译还是release编译