在没有Android Studio的情况下运行AVD模拟器

385

有没有办法在不先启动 Android Studio 的情况下运行模拟器? 也许可以通过命令行来实现。我知道这个功能在旧版本中是可用的,但从那以后就消失了。但也许有人已经找到了如何做到这一点的方法?


13
这是我对于安卓开发最大的不满,主流的AOSP支持使用自己的文本编辑器进行命令行DIY开发几乎不存在...与Vue/React开发相比,这相差甚远。 - Ray Foss
37个回答

335

从控制台运行模拟器的方法(我假设您之前已经使用Android Studio安装了它)是:

运行

cd ~/Android/Sdk/tools/bin && ./avdmanager list avd

或者

cd ~/Android/Sdk/tools && ./emulator -list-avds

您将获得已安装虚拟设备的列表。 在我的情况下,它是:

Available Android Virtual Devices:
  Name: Galaxy_Nexus_API_17
  Device: Galaxy Nexus (Google)
  Path: /home/piotr/.android/avd/Galaxy_Nexus_API_17.avd
  Target: Google APIs (Google Inc.)
  Based on: Android 4.2 (Jelly Bean) Tag/ABI: google_apis/x86
  Skin: galaxy_nexus
  Sdcard: /home/piotr/.android/avd/Galaxy_Nexus_API_17.avd/sdcard.img

复制要运行设备的名称,然后执行以下命令:

cd ~/Android/Sdk/tools && ./emulator -avd NAME_OF_YOUR_DEVICE

例如,我的情况是:

cd ~/Android/Sdk/tools && ./emulator -avd Nexus_5X_API_23


62
提醒一下:对我来说,SDK 位于/Users/<用户名>/Library/Android/sdk - flaky
6
最后一个命令给了我一个错误 bash: ./emulator: No such file or directory。有什么解决方法吗? - Dhyey
4
根据SDK的安装方式,你可能已经设置了名为$ANDROID_HOME的环境变量来指示SDK的位置。运行以下命令: cd $ANDROID_HOME/tools/bin && ./avdmanager list avdcd $ANDROID_HOME/tools && ./emulator -avd <YOUR_DEVICE_NAME> - Joshua King
3
稍微缩短一下命令:~/Library/Android/Sdk/tools/emulator -avd Nexus_5 ...(不需要 cd&& ./),这样你的当前目录就不会改变。 - Sodj
2
更新,因为avdmanager不再必要。在Windows 10上,您可以运行Android\Sdk\tools\emulator.exe -list-avds来获取列表。 - Matt Kenefick
显示剩余11条评论

166

在MacOS上

首先列出安装的模拟器。

~/Library/Android/sdk/tools/emulator -list-avds

然后运行模拟器

~/Library/Android/sdk/tools/emulator -avd Nexus_5X_API_27

8
不错!运行列表中第一个的快捷方式:~/Library/Android/sdk/tools/emulator -avd $(~/Library/Android/sdk/tools/emulator -list-avds | head -n 1) - James Broad
这非常有帮助,谢谢 @zeeawan .! - Tharusha
112
如果有人收到错误信息: "PANIC: Missing emulator engine program for 'x86' CPU." 请尝试使用以下命令: "~/Library/Android/sdk/emulator/emulator -avd Nexus_5X_API_27"。注意使用 /emulator 而不是 /tools 是关键所在。 - jnfran92
在我的macOS 11.6上运行良好,谢谢@jnfran92。 - dotrinh PM
1
同样适用于Windows,不过命令略有不同。在Android/sdk/emulator文件夹中,使用emulator -list-avdsemulator -avd avd_name命令。 - Lalit Fauzdar
显示剩余2条评论

101

你可以制作一个批处理文件,直接打开模拟器而无需打开 Android Studio。如果你使用的是 Windows 操作系统:

  • 打开记事本。

  • 新建文件。

  • 把下面这几行复制到你的文件中:

  •  cd /d C:\Users\%username%\AppData\Local\Android\sdk\tools
     emulator @[YOUR_EMULATOR_DEVICE_NAME]
    

    注意:

  • [YOUR_EMULATOR_DEVICE_NAME]替换为您在模拟器中创建的设备名称。

  • 要获取设备名称,请前往:C:\Users\%username%\AppData\Local\Android\sdk\tools

  • 运行cmd并键入:emulator -list-avds

  • 复制设备名称并粘贴到批处理文件中

  • 将文件保存为emulator.bat并关闭

  • 现在双击emulator.bat,您就可以运行模拟器了!


9
Windows系统也有%LOCALAPPDATA%这样的变量,您可以将其缩短为:%LOCALAPPDATA%\Android\sdk\emulator\emulator @Pixel_2_API_27(@后面是设备名称,可通过提到的“-list-avds”获取)。 - amenthes
只需键入“C:”即可更改驱动器。当我包括正斜杠,即“C:/”时,在PowerShell和命令提示符中都会出现错误。 - Rokit
干得好。但是如果我关闭命令行,模拟器也会关闭。能修复吗? - Dyno Cris
1
对我来说不起作用,终端在双击后打开并关闭。 - Zeeshan Ahmad Khalil
3
Android SDK的新版本中,模拟器路径为:C:\Users\%username%\AppData\Local\Android\sdk\emulator。请将第一行替换为cd /d C:\Users\%username%\AppData\Local\Android\sdk\emulator,无需改变原文意思,以便更易于理解。 - Rubek Joshi

44

试试这个

1. 完整的视频教程(适用于所有Windows版本)

或者

2. 文字教程

  • 打开命令提示符并更改sdk所在的目录D:\Softwares\Android\sdk\tools\bin>

  • 现在将avdmanager添加到其中,现在您的完整代码是:D:\Softwares\Android\sdk\tools\bin>avdmanager list avd

  • 几秒钟后,它将向您显示您已经创建的模拟器设备列表

  • 现在键入cd..

  • 使用此cmd运行您的模拟器,这里我的模拟器名称为Tablet_API_25,因此我在-avd之后键入了此名称。

    D:\Softwares\Android\sdk\tools>emulator -avd Tablet_API_25

编辑:对于Android Studio 3.2或更高版本,路径更改为D:\Softwares\Android\sdk\emulator\emulator -avd Tablet_API_25

%ANDROID_HOME%\tools\emulator -avd [AVD名称]

输入图像描述


13
在我的 Windows 10 电脑上,“avdmanager list avd” 命令无法使用。我在 tools/ 目录下使用了 “emulator -list-avds” 命令。希望这能对其他人有所帮助 :) - dean.huczok
4
为何我收到了错误,[1020]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28: 在..\emulator\lib64\qt\lib未找到Qt库。 无法启动'C:\Users\afaid.android\avd..\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe':找不到该文件或目录。 - Han Whiteking
@HanWhiteking,你尝试过检查你指定的路径是否正确吗? - Sunil
8
最近的Android版本已经将模拟器从tools文件夹移动到了emulator文件夹中。参考路径为:C:\Users\USER_NAME\AppData\Local\Android\Sdk\emulator - j3ff
谢谢,这个方法有所改动后成功了。对我来说,Android SDK位于C:/Users/<username>/AppData/Local/Android/sdk/。只需进入C:/Users/<username>/AppData/Local/Android/sdk/emulator并运行emulator.exe -list-avds获取设备名称。然后运行emulator.exe -avd <device_name>即可。 - sweetpoision

41

打开你的终端并

cd path_to/Android/Sdk/emulator

使用以下命令获取在Android Studio中创建的模拟器名称

./emulator -list-avds

将$emulator_name替换为您想要启动和运行的模拟器

./emulator -avd $emulator_name

我用Mac OS来完成上述任务,你用什么平台? - Daniel Raouf
同时,我也检查了 $ANDROID_HOME 路径,它是正确的。此外,MacOS 也被考虑在内。 - Miguel Stevens
导航到 path_to/Android/Sdk/emulator。你应该有一个名为 emulator 的文件。如果没有,你应该在 Android Studio 内部第一次创建一个模拟器。之后,你就可以按照上述方式随时打开它。 - Daniel Raouf
我的 Android 3.2 的 Windows 路径是 C:\Users[USER]\AppData\Local\Android\Sdk\emulator。 - Adrian P.

37

如果您要启动Flutter应用程序的模拟器,则可以运行以下命令 -

> flutter emulators --launch [Emulator ID]
在我的情况下,模拟器的ID是Pixel_2_API_29,因为我是在Android Studio的AVD管理器中创建的。所以,在我的情况下,命令如下 -

在我的情况下,模拟器的ID是Pixel_2_API_29,因为我是在Android Studio的AVD管理器中创建的。所以,在我的情况下,命令如下 -

> flutter emulators --launch Pixel_2_API_29

谢谢


2
列出模拟器的命令是 flutter emulators - g2server

29
在ANDROID_HOME文件夹中,您将拥有tools文件夹。
在Mac/Linux中: emulator -avd <avdName> 在Windows中: emulator.exe -avd <avdName> 如果您正在使用API 24,您可以从列表中获取模拟器名称: android list avds 如果您正在使用API 25,则可以在tools\bin中使用avdmanager获取它: avdmanager list avds

22

列出您拥有的模拟器

~/Library/Android/sdk/tools/emulator -list-avds
例如,我有这个Nexus_5X_API_24
因此运行该模拟器的命令是:
cd ~/Library/Android/Sdk/tools && ./emulator -avd Nexus_5X_API_24

是的,模拟器二进制文件有“-list-avds”选项。这是更简单的方法。 - Subin

19

一张图片胜过千言万语 :)

如何从MAC终端启动AVD

MAC终端中的AVD


1
在Ubuntu上也运行良好。 - Deus chami

19

在Ubuntu 20.04中,我找到了以下解决方案:

首先,您需要导出Android路径变量。方法如下:

export ANDROID_SDK=~/Android/Sdk
export PATH=$ANDROID_SDK/emulator:$ANDROID_SDK/tools:$PATH
路径可能会根据您的安装路径而改变。如果使用 Ubuntu软件 安装 Android Studio,则路径将与上述说明相同。如果 export 命令正确运行,则以下命令应列出您的 AVD名称
emulator -list-avds

就我的情况而言,我得到了结果

Nexus_5_API_30

我的AVD的名称是什么。

如果上面的命令列出了您的AVD名称,则可以通过以下方式运行AVD:

emulator @YOUR_AVD_NAME

就我的情况而言

emulator @Nexus_5_API_30

您可以将export命令添加到.bashrc文件中,以避免每次需要运行您的AVD时都要键入export命令。


1
很高兴知道这也适用于Mac :) 我正在使用zsh。 - Eitel Dagnin

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