我在笔记本电脑上做了很多开发,我使用各种Android模拟器来完成它。运行时,仿真器经常占用大量的CPU,从而大大降低笔记本电脑的电池寿命。
有没有办法暂时暂停模拟器,或至少关闭任何消耗所有不必要的CPU的东西?
我知道使用sdk r9以及后来我可以快速模拟仿真器并快速退出/重启它,但我希望我的工作流程比那更具侵略性。
答案 0 :(得分:8)
在Linux中,您可以通过
停止该过程$ killall --signal STOP emulator
或
$ killall --signal STOP emulator64-arm
稍后继续
$ killall --signal CONT emulator
或
$ killall --signal CONT emulator64-arm
Gotcha :如果更新Eclipse,请确保在重新启动eclipse时未停止模拟器。加载时Eclipse将停止,等待停止的模拟器继续运行。
答案 1 :(得分:6)
最新版本的adt支持模拟器快照,这意味着您可以关闭模拟器并将其恢复到快速的位置。因此,要解决您的问题,只需关闭您的模拟器并在需要时将其恢复。
创建avd时检查快照已启用:
确保启动时检查启动和保存快照:
答案 2 :(得分:2)
对于跨平台解决方案,这应该暂停,然后继续执行模拟器:
$ telnet localhost 5554
> avd stop
> avd start
答案 3 :(得分:0)
使用活动监视器,找到模拟器的进程ID#(PID)。
在终端telnet到您的模拟器:
avd stop
停止模拟器
kill -STOP 19636
在另一个终端窗口中,停止(暂停)该过程(19636是一个示例PID,您需要从活动监视器为您的模拟器提供特定的PID):
avd start
要重新启动模拟器,请从telnet连接到模拟器:
kill -CONT 19636
然后最后从OSX终端继续该过程:
Array
(
[Germany] => Array
(
[0] => Array
(
[amount] => 50
[count] => 1
)
)
[Poland] => Array
(
[0] => Array
(
[amount] => 80
[count] => 2
)
)
)
我发现简单地执行kill -STOP / CONT将不允许模拟器在尝试重启时恢复生命。继续该过程后,虽然它的CPU使用率恢复正常,但仿真器仍会保持冻结状态。
通过telnet停止模拟器,然后停止进程然后将这些步骤反转以重新启动,似乎完美无缺。