如何在调试时让Android设备进入“睡眠”模式?

4

我最近在调试关于设备进入睡眠模式和更改活动的问题。(Android 在睡眠时更换活动)幸运的是,我得到了解决方案,而且没有使用调试器,但如果我需要使用调试器的话,我不知道该怎么做。

这个设备(三星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。


有人发了一条评论,但后来删除了,说有一个开发者设置可以解决这个问题。我找不到它 - 还有其他人知道吗? - user316117
4个回答

3

有一个选项是相反的,你可以看看是否被选中。

在 Android 设置面板的开发者选项下,寻找第三个项目,标题为保持唤醒(充电时屏幕不会休眠)

突出显示“保持唤醒”选项的 Android 开发者选项屏幕


1
这只是针对屏幕的操作,CPU仍将保持活动状态。 - Daniele Ricci
@DanieleRicci,根据Mattia的回答和评论,我认为OP所说的“睡眠模式”就是这个意思。然而,我认为CPU频率随着屏幕关闭而进行的细节是由制造商控制而不是Android操作系统控制的实现细节。如果是这样,并且CPU行为很重要,我认为这个问题无法有明确的答案。 - Jeremy

2

使用通过wifi的ADB可能会更接近工作,但是通常很难使用,并且一旦设备实际进入睡眠状态,调试器可能会失败。

更有效的方法可能是在所有生命周期方法中加入日志记录。然后在没有连接USB电缆的情况下运行您的测试。一旦测试完成,请重新连接电缆并从设备中提取logcat(也许使用命令行版本)-根据手机上正在进行的活动,检索到的日志缓冲区将包含时间跨度长达数分钟甚至数小时的消息,可能包括您的实验。


我不知道怎么做 - 我该如何在事后从设备中检索logcat文件呢? - user316117
连接设备,打开终端到SDK工具目录位置或将其添加到路径中,然后输入“logcat”。如果您想保存它,可以执行“logcat > log.txt”,等待约10秒钟,然后按“ctrl-c”并将生成的文件加载到查看器/编辑器中。 - Chris Stratton

0

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


我不确定按下电源按钮是否会引入其他事件。从Activity生命周期的角度来看,按下电源按钮是否与显示超时相同? - user316117
是的!因为按下电源键会锁定屏幕,这相当于显示超时。 - Mattia Franchetto
是的,但那不是它所有的功能。首先,它会生成关键事件。而且根据按住它的时间长短来关闭设备。我只想以正常方式发生普通超时。 - user316117
清除。所以如果你需要常规方式的超时,我已经完成了我的想法。 - Mattia Franchetto

0

当设备连接电缆时,它无法进入深度睡眠,因为它会监测充电状态,所以CPU永远不会进入睡眠模式。 我看到有人试图禁用电缆的充电线路,但似乎无法做到,因为电缆线路携带同步信号。 因此,我认为您必须寻找记录事件的方法,就像已经建议的那样。 顺便说一下,即使USB电缆连接,我的设备屏幕也会关闭。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接