如何在没有控制台窗口的情况下从.bat运行AVD模拟器?

3
我想创建一个快捷方式来运行AVD模拟器,而无需打开Android Studio。因此,我使用一个包含下一行的.bat文件:

我想创建一个快捷方式来运行AVD模拟器,而无需打开Android Studio。因此,我使用一个包含下一行的.bat文件:

emulator @Pixel_2_API_29

当我运行它时,当然会出现一个控制台窗口,但我真的不需要它:

cmd

如果我关闭它,模拟器也会关闭。有没有办法在后台运行或类似的方式来获取一个正在运行的模拟器,而没有任何控制台窗口(如果您从Android Studio运行模拟器并立即关闭它,则可以实现相同的行为)?
2个回答

7

enter image description here


这是一个混合的cmd/js/vbs/batch代码,可以为您完成这项任务,只需保存为.cmd文件并享受!
<!-- :
@echo off && mode 050,03 && title <nul && title .\%~nx0 && for /f ^tokens^=* %%i in ('
%__APPDIR__%wScript.exe "%~dpnx0?.wsf" @Pixel_2_API_29 ^& cls ') do exit /b 2>nul >nul
--> <job> <script language = "vbscript"> Set WshShell =CreateObject( "WScript.Shell" )
WshShell.Run chr(34)&"%userprofile%\AppData\Local\Android\Sdk\emulator\emulator.exe"&_
Chr(34)&WScript.Arguments(0)&Chr(34), 0, False: Set WshShell = Nothing </script></job>

  • 注意:

您可以在此链接中了解有关混合批处理的更多信息,并查看一些示例代码/文件。


  • 要使用参数,请在for循环批处理会话中添加引号:
"arg1 arg2 ag3" <==> " -memory 4096" obs.: 3rd line in code!

<!-- :
@echo off && mode 050,03 && title <nul && title .\%~nx0 && for /f ^tokens^=* %%i in ('
%__APPDIR__%wScript.exe "%~dpnx0?.wsf" @Pixel_2_API_29 " -memory 4096"^>nul')do exit/b
--> <job> <script language = "vbscript"> Set WshShell =CreateObject( "WScript.Shell" )
WshShell.Run chr(34)&"%userprofile%\AppData\Local\Android\Sdk\emulator\emulator.exe"&_
Chr(34)&WScript.Arguments(0)&Chr(34)&Chr(34)&WScript.Arguments(1)&Chr(34), 0, False:
Set WshShell=Nothing</script></job>


这是使用默认Pixel 2模拟器和启用Google Play的Android Studio - user12531529
非常感谢,看起来像魔法一样,但却像魅力一样有效。我有一个挑战要深入研究这个东西,有时可能会很有帮助。奇怪的是,当Android Studio关闭或打开时,我没有注意到显著的开启时间或性能差异,需要进行一些时间测试... - user12531529
我该如何在这个解决方案中传递另外两个命令行参数,例如如果我想运行 emulator @Pixel_2_API_29 -memory 4096 - user12531529
谢谢您的提前帮助,请将其添加到您的答案中。 - user12531529
哦,这很有效,非常感谢,现在可以使用新的便捷方式启动所有我的AVD了。顺便说一下,那是启用了Google Play的Android 10手机Pixel 2。 - user12531529

0

考虑将批处理作为服务运行

如果您可以接受控制台窗口:

创建批处理文件的快捷方式。右键单击快捷方式 - 属性 - 运行:最小化

screenshot change shortcut properties

screenshot change shortcut properties run minimized


1
这有所改善,但仍会打开一个控制台窗口,污染alt+tab区域,如果不小心关闭将关闭模拟器。 - user12531529
你不能将“start”用作快捷方式的目标。而且,“cmd /c”解决方案也会导致出现cmd窗口 :/ - user12531529
尝试使用 sc create "AVD emulator" start=demand displayname= "AVD emulator" binpath="C:\Users\<username>\Desktop\Run emulator.bat" 创建服务,但不幸的是它无法启动,收到 Error 1053: The service did not respond to the start or control request in a timely fashion 错误。 - user12531529

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