【问题标题】:Definition of DEVELOPER_MODE for StrictModeStrictMode 的 DEVELOPER_MODE 定义
【发布时间】:2011-05-25 23:27:13
【问题描述】:

我正在焦急地等待 StrictMode 的开源版本,以继续我们的平台开发。 Android blog entry 中的示例建议使用

包围 StrictMode 调用
if (DEVELOPER_MODE) {
    ...
}

对于 SDK 开发,我希望这个常量由每个应用程序在本地定义。但是,对于平台开发来说,android.util.Config.DEBUG是判断是否开启这个的最佳方式吗?

【问题讨论】:

  • 我认为这是一个布尔值,他们只是定义了一个任意名称。

标签: android android-sdk-2.3 android-strictmode


【解决方案1】:

抱歉,DEVELOPER_MODE 只是我为博客文章和 Javadoc 选择的任意名称。也许我应该在文档中更清楚地说明这一点。

我曾想象人们会自己编写硬编码,

private static final boolean DEVELOPER_MODE = false;

...他们手动维护,但看起来Config.DEBUG 会更好用。我什至不知道那件事! :)

【讨论】:

  • 我注意到在 OpenSource Gingerbread 代码中没有一个核心 Android 应用程序使用 StrictMode。我希望看到他们如何使用它来模拟我们自己的平台开发将如何使用 StrictMode。您能否提供有关 Android 平台开发团队在其开发周期中如何启用/禁用 StrictMode 的任何见解。
  • 戴夫,那是因为他们都在使用 StrictMode。我们为所有系统应用开启它:
  • 哎呀,只有单行 cmets(我按 Enter 太早了)。请参阅android.git.kernel.org/?p=platform/frameworks/… 并搜索“conditionallyEnableDebugLogging”,它是公开的但隐藏的 API。
  • @BradFitzpatrick 该死的,我一打开您的博客条目,就必须搜索 DEVELOPER_MODE 是否存在,然后我发现了这个问题。有那么一刻,我将我对 android 的期望从低调到了正常,但现在又回到了低调。
【解决方案2】:

Config.DEBUG 不会真正起作用,因为它几乎总是设置为 false。最好查看 AndroidManifest 文件中的 debuggable 属性。我已经在博客文章中记录了它。 Links are with this answer

【讨论】:

    【解决方案3】:

    回答我自己的问题... 作为平台开发人员(使用 Android 创建设备的人),只要使用 eng 或 userdebug 构建平台,Android 中的 Activity Manager 就会自动在主线程上为系统分区上安装的所有应用启用 StrictMode。我同意 Manfred 的观点,即 Config.DEBUG 不适合 SDK 开发人员。从本质上讲,编写默认加载到系统分区上的应用程序的平台开发人员不需要做任何事情来利用 StrictMode - 平台会为他们做这件事。

    【讨论】:

    • 我没有完全了解我们作为应用程序开发人员(即不是平台开发人员)拥有什么。我们应该使用隐藏的conditionallyEnableDebugLogging 吗?检查 AndroidManifest 文件?要么...?助教
    【解决方案4】:

    这是一个老问题,但我想提一下,我能想象到的最接近的替代方案是应用工程师的BuildConfig.DEBUG。它返回这是否是一个调试版本。

    【讨论】:

      猜你喜欢
      • 2017-11-04
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2012-06-22
      • 2018-09-25
      • 2019-04-10
      • 2014-04-19
      相关资源
      最近更新 更多