重启安卓设备

56
我们有一台安装了 Android 和 Linux 系统的设备。我们通过登录 Linux shell 并在 Android 图形用户界面中引导该设备。现在我们有一个脚本通过 Linux shell 在同一台设备上运行。如果脚本挂起,我们需要重新启动 Android 设备。但这也会导致 Linux 设备重新启动,因为它们在同一台机器上。我需要一种方法来重启 Android 设备,以使其退出挂起状态,并且控制权仍然在通过 Linux shell 运行的脚本上。
所以,是否有任何可用于我的 adb 或 Linux 命令?

5
"adb reboot" 会重新启动设备。 - EvZ
是的,因为它们都在同一台机器上。 - Sagar
4
“m/c”是什么?请编辑您的问题并澄清,然后将此评论标记为过时。 - unforgettableidSupportsMonica
4个回答

161

你试过用adb简单地“重新启动”吗?

  adb reboot

你也可以通过adb运行完整的shell脚本(例如重新启动模拟器):

 adb shell <command>

官方文档可以在这里找到。

仔细阅读我的问题...当我执行adb reboot命令时,由于它们在同一台机器上,Android和Linux机器都会重新启动。我想重新启动Android机器,但不是Linux shell。 - Sagar
是的,我理解了你的意思。但是我上面的例子展示了如何向实体Android设备发送重启命令。我认为,Android设备以虚拟机的形式在模拟器中运行,或者你是指Android设备在原生环境下运行?请更具体地描述你的问题。Android确实可以在ARM架构的设备上运行,但不能在X86架构上原生运行,所以你的Android实例应该是在模拟器中,对吗? - alex
好的,我不明白的是你如何让 Linux 和 Android 运行在一起。根据你的解释,你在一台机器上拥有两个操作系统:Android 和 Linux。你是如何做到的呢?有使用虚拟机吗? - alex
但是adb reboot会重新启动客户机和安卓机吗? - alex
很遗憾,我不熟悉xshell。但是如果您在Android中激活ADB,然后从客户端机器通过adb连接,它肯定会起作用。 - alex
显示剩余6条评论

38
您可以通过发送以下广播来重新启动设备:

$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

您可以通过发送上述命令来重启设备。

重新启动了设备,但cmd卡在“Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED }”处,因此我认为这不是完整的解决方案。 - sak
3
很遗憾,由于权限问题,它无法工作。@alex的答案应该被标记为正确。 - Pietrek

24

adb reboot不应该重新启动你的Linux系统。

但是无论如何,你可以使用adb -s <device_id> command将命令重定向到特定的adb设备,其中

设备ID可以从命令adb devices中获取。
在这种情况下,命令是reboot


0

我认为唯一的方法是并行运行另一台机器,并使用该机器向您的Android盒子发出类似于通过手机发送指令的方式。如果您遇到IP更改的问题,您可以在路由器上保留一个ip,而不是要求机器从路由器的DHCP中获取一个。这样,您就可以对机器进行ping测试,并确定是否已完成重新启动以继续脚本。


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