我正在焦急地等待 StrictMode 的开源版本,以继续我们的平台开发。Android 博客条目中的示例建议将 StrictMode 调用与
if (DEVELOPER_MODE) {
...
}
对于 SDK 开发,我希望这个常量由每个应用程序在本地定义。但是,对于平台开发来说,android.util.Config.DEBUG
确定是否开启这个是最好的方法吗?
我正在焦急地等待 StrictMode 的开源版本,以继续我们的平台开发。Android 博客条目中的示例建议将 StrictMode 调用与
if (DEVELOPER_MODE) {
...
}
对于 SDK 开发,我希望这个常量由每个应用程序在本地定义。但是,对于平台开发来说,android.util.Config.DEBUG
确定是否开启这个是最好的方法吗?
抱歉,DEVELOPER_MODE
这只是我为博客文章和 Javadoc 选择的任意名称。也许我应该在文档中更清楚地说明这一点。
我曾想象人们会自己编写硬编码,
private static final boolean DEVELOPER_MODE = false;
...他们手动维护,但看起来Config.DEBUG
会更好用。我什至不知道那件事!:)
Config.DEBUG is not going to actually works since it is pretty much always set to false. It is better to look at the debuggable attribute in the AndroidManifest file . I have documented it on a blog post. Links are with this answer
回答我自己的问题... 作为平台开发人员(使用 Android 创建设备的人),Android 中的 Activity Manager 会自动在主线程上为安装在系统分区上的所有应用程序启用 StrictMode,只要平台是使用 eng 构建的或构建用户调试。我同意 Manfred 的观点,即 Config.DEBUG 不适合 SDK 开发人员。本质上,平台开发人员编写默认加载在系统分区上的应用程序不需要做任何事情来利用 StrictMode - 平台会为他们做这件事。
这是一个老问题,但我想提一下,我能想象到的最接近的替代方案是BuildConfig.DEBUG
应用工程师。它返回这是否是调试版本。