让 Android 进入睡眠状态以进行测试
Posted
技术标签:
【中文标题】让 Android 进入睡眠状态以进行测试【英文标题】:Put Android to sleep for testing 【发布时间】:2017-06-23 23:17:57 【问题描述】:我正在创建一个闹钟应用程序,目前在处理唤醒锁(或者可能是其他问题)时遇到问题,以便在手机处于睡眠状态时使闹钟正常工作。但是,我的问题实际上不是关于唤醒锁,而是关于如何让手机进入睡眠状态,以便我可以测试我想在我的闹钟应用程序上实现的各种选项。目前我必须等待手机进入睡眠状态才能测试我的代码。那么有没有办法以编程方式让手机进入深度睡眠?
【问题讨论】:
【参考方案1】:我在开发工作期间遇到了同样的问题。 android 文档不是很有用——使用 adb 切换到打盹模式(深度睡眠):
adb shell dumpsys deviceidle force-idle
同样有用,使用:
adb shell dumpsys deviceidle step
或
adb shell dumpsys deviceidle unforce
回到“正常”模式。简介:
adb shell dumpsys -l #(lower case "L") list subsystems (deviceidle is one)
然后:
adb shell dumpsys deviceidle -h #parameters with brief description
此外,adb 需要访问您的设备(或模拟器)才能获取此信息。祝你好运!
【讨论】:
看起来你找到了!但是你把命令行放在哪里?我在 android 中看不到 ARGs 行! 嗨@Phil,adb 进入您的调试计算机终端。所以,如果你安装了 adb(它带有 Android SDK,检查路径,它可能不在你的搜索路径中)和一个通过 USB 连接的启用调试的手机,那么你应该没问题(它默认为唯一的设备,如果只有一个)。 adb 操作与调试会话并行发生。更多选项:尝试 adb -h 以获得更多详细信息。这能回答你的问题吗? 但屏幕显示仍在。 我这样做了,但什么也没发生,甚至屏幕都没掉……我怎么知道它真的有效【参考方案2】:您可以按照以下步骤测试打盹模式/深度睡眠模式:
-
使用 Android 6.0 配置硬件设备或虚拟设备
(API 级别 23)或更高的系统映像。
将设备连接到您的开发机器并安装您的应用。
运行您的应用并使其保持活动状态。
通过运行以下命令强制系统进入空闲模式:
$ adb shell dumpsys deviceidle force-idle
准备就绪后,通过运行以下命令退出空闲模式:
$ adb shell dumpsys deviceidle unforce
在重新激活设备后观察应用的行为。
【讨论】:
5. adb shell dumpsys deviceidle unforce --->我收到“Unknown command: unforce”错误 我收到了 Android 模拟器的Unable to go deep idle; not enabled
。如何启用它?
@JustAMartin 要启用深度空闲,您可以发出命令adb shell dumpsys deviceidle enable all
以上是关于让 Android 进入睡眠状态以进行测试的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 google colab 让 Windows 10 笔记本电脑进入睡眠状态?
如何防止 android 设备进入睡眠状态(通过 adb 命令外壳)