从代码中获取androidManifest的"可调试"值?

ABD*_*ids 49 android android-manifest

我在android提供的Log.java上编写了一个包装器.我的类将在日志中添加一些其他应用程序级功能.

现在问题是我想从代码中检查androidManifest.xml文件中的"debuggable"是否设置为"true"或"false".

我能这样做吗?如果有,怎么样?

Com*_*are 100

使用PackageManager得到一个ApplicationInfo对你的应用程序对象,并检查flags领域FLAG_DEBUGGABLE.

boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE));
Run Code Online (Sandbox Code Playgroud)


Sni*_*las 53

您现在可以使用静态布尔字段BuildConfig.DEBUG来实现相同的功能.此类是在编译期间生成的,可以在gen文件夹中看到.

  • BuildConfig是一个生成的类,因此如果您正在开发一个应用程序,它可以正常工作.如果您正在开发一个库并且想要测试包含库的应用程序是否可调试,则不能使用BuildConfig(因为您的库对应用程序的BuildConfig类一无所知).也使用ApplicationInfo.FLAG_DEBUGGABLE. (9认同)
  • **警告**:此方法不起作用.`BuildConfig.DEBUG`报告发布版本中的误报.我已切换到`ApplicationInfo.FLAG_DEBUGGABLE`方法以获取正确的值.https://code.google.com/p/android/issues/detail?id=27940 (6认同)