【问题标题】:How do I let Android device go to "sleep" while debugging?调试时如何让 Android 设备进入“睡眠”状态?
【发布时间】:2014-05-05 17:38:49
【问题描述】:

我最近调试了一个与设备进入睡眠模式和更改活动有关的问题。 (Android changes activity when it goes to sleep) 幸运的是,我在没有使用调试器的情况下获得了解决方案,但如果我需要调试器,我不知道该怎么做。

设备(Samsung Galaxy Player,Android 2.36)的显示超时设置为 30 秒,如果未连接到 USB,则屏幕会在 30 秒内变黑。

但如果它连接到 USB,它会在 30 秒后变暗,但它不会变黑,并且屏幕上的 Activity 仍然保持活跃和响应。但我需要将它连接到 USB 来调试它。

如何(以编程方式或通过某些 Android 设置)让我的 Android 设备在连接到调试器时正常进入睡眠状态,以便我可以使用调试器调查与睡眠/空闲状态相关的 Activity 生命周期事件?

我的开发环境是 Eclipse Indigo,Android Development Tools 22.0.1.v201305230001--685707,Windows 7。

【问题讨论】:

  • 有人发表了一条评论,后来他删除了这条评论,说有一个开发者设置。我找不到 - 其他人知道吗?

标签: android


【解决方案1】:

这可能会更接近于通过 wifi 使用 ADB,但这通常会让人不愉快,并且一旦设备确实进入睡眠状态,调试器可能会失败。

更高效的方法可能是将日志记录放在所有生命周期方法中。然后在没有连接 USB 电缆的情况下运行您的测试。运行测试后,重新连接电缆并从设备中拉出 logcat(可能使用命令行版本)——根据手机上发生的情况,检索到的日志缓冲区将包含可以追溯到几分钟甚至更长时间的消息几个小时的时间,可能包括你的实验。

【讨论】:

  • 我不知道该怎么做 - 我如何在事后从设备中检索 logcat 文件,就像那样?
  • 连接设备,打开终端到 SDK 工具目录位置或将其放在您的路径中,然后输入 logcat。如果你想保存它,你可以执行 logcat > log.txt 等待大约 10 秒,然后 ctrl-c 并将生成的文件加载到查看器/编辑器中。
【解决方案2】:

有一个选项与您想要的相反,因此您可以查看是否已选中。

在 Android 设置面板的开发者选项下,查找名为保持清醒(充电时屏幕永远不会休眠)的第三项。

【讨论】:

  • 这只是为了屏幕。 CPU 仍将处于活动状态。
  • @DanieleRicci 这就是我认为 OP 的“睡眠模式”的意思,特别是考虑到对 Mattia 回答的评论。但是,我会认为屏幕超时后 CPU 频率缩放的细节是由制造商而不是 Android 操作系统控制的实现细节。如果是这样,而且 CPU 的行为很重要,我认为这个问题不能有明确的答案。
【解决方案3】:

您只需按下电源按钮即可将设备置于睡眠模式。

【讨论】:

  • 我不确定按下电源按钮是否会引入其他事件。从 Activity 生命周期的角度来看,按下电源按钮与显示超时相同吗?
  • 是的!因为按电源会锁屏,相当于显示超时。
  • 是的,但这还不是全部。一方面,它产生关键事件。根据您按下它的时间长短,它会关闭设备。我只是希望定期超时以常规方式发生。
  • 清除。所以如果你需要以常规方式超时,我完成了我的想法。
【解决方案4】:

连接电缆时设备无法进入深度睡眠,因为它会监控充电,因此 cpu 永远不会进入睡眠模式。 我读到有人尝试禁用电缆上的充电线,但似乎无法对电缆线携带的同步信号进行操作。 因此,我认为您必须查找已建议的事件日志。 仅供参考,即使连接了 USB 电缆,我设备的屏幕也会熄灭

【讨论】:

    猜你喜欢
    • 2017-06-23
    • 2012-01-17
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多