【问题标题】:How to run AVD emulator from .bat without a console window?如何在没有控制台窗口的情况下从 .bat 运行 AVD 模拟器?
【发布时间】:2020-04-08 17:54:01
【问题描述】:

我想创建一个快捷方式以在不打开 Android Studio 的情况下运行 AVD 模拟器。所以我使用了一个包含下一行的.bat 文件:

emulator @Pixel_2_API_29

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

如果我关闭它,模拟器也会关闭。有没有办法在后台运行它或类似的东西只是为了获得一个没有任何控制台窗口的正在运行的模拟器(如果你从 Android Studio 运行模拟器并立即关闭它,可以实现相同的行为)?

【问题讨论】:

    标签: android-studio batch-file cmd android-emulator avd


    【解决方案1】:


    这是一个混合的 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>
    

    • 观察:

    您可以阅读有关混合蝙蝠的更多信息in this link,并查看一些sample code/files here.


    • 对于使用参数,只需在 for loop bat 会话中添加引号:
    "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>
    

    【讨论】:

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

    考虑运行batch as a service

    如果您可以使用控制台窗口:

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

    【讨论】:

    • 这有点好,但仍然会打开一个污染 alt+tab 部分的控制台窗口,如果不小心关闭将关闭模拟器。
    • 您不能使用start 作为快捷方式的目标。而cmd /c 解决方案也会导致获取 cmd 窗口:/
    • 尝试使用sc create "AVD emulator" start=demand displayname= "AVD emulator" binpath="C:\Users\&lt;username&gt;\Desktop\Run emulator.bat"创建服务,可惜无法启动,接收Error 1053: The service did not respond to the start or control request in a timely fashion
    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2018-06-09
    • 2020-09-20
    • 2023-03-24
    相关资源
    最近更新 更多