如何从命令行启动Android模拟器?

问题描述 投票:328回答:18

我在Mac上,从终端开始进行Android开发。我已成功创建了HelloWorld项目,现在我正在尝试从Android模拟器中的命令行运行它。哪个命令为我的HelloWorld项目运行模拟器?

我的PATH中已经有了Android工具和平台工具。

编辑:

如何告诉模拟器从命令行运行我的HelloWorld项目?我已经用ant构建了这个项目。

android command-line android-emulator console console-application
18个回答
353
投票

我假设您已经构建了项目并且只需要启动它,但是您没有创建任何AVD并且必须使用命令行来执行所有操作。你必须做以下事情。

  1. 为您需要的平台创建新的虚拟设备(AVD)。如果必须使用命令行创建AVD,则可以调用android create avd -n <name> -t <targetID>,其中targetID是您需要的API级别。如果你可以使用GUI,只需输入android avd它就会启动管理器,你可以在那里做同样的事情。你可以阅读更多关于AVD management through GUIthrough command line的信息。
  2. 使用命令emulator -avd <name>或通过先前启动的GUI运行AVD。等到仿真器完全加载,需要一些时间。你可以读一下additional options here
  3. 现在您必须将应用程序安装到AVD。通常在开发期间,您只需使用用于构建项目的相同Ant脚本,只需选择install目标。但是,您可以使用命令adb install <path-to-your-APK>手动安装应用程序。
  4. 现在切换到模拟器并通过启动器启动您的应用程序,就像在任何普通设备上一样。或者,您也可以使用以下命令:adb shell am start -a android.intent.action.MAIN -n <package>/<activity class>。例如:adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld。正如评论者建议的那样,你也可以用org.sample.helloworld.HelloWorld替换上面一行中的.HelloWorld,它也会起作用。

4
投票

android create avd命令已弃用。现在建议使用avdmanager来从命令行启动模拟器。

首先,创建一个新的模拟器(如果尚不存在):

avdmanager create avd --name "MyEmulator" -k "system-images;android-
26;google_apis;x86"

这假设您已经安装了与API 26匹配的X86系统映像,并且已安装了Google API。

然后,您可以使用emulator @MyEmulator启动模拟器。


4
投票

如果您有Git Bash,您可以通过双击打开模拟器,并进行一些初始设置(仅在Windows 10中测试):

  1. 打开Git Bash。
  2. 运行cd ~/AppData/Local/Android/sdk/emulator
  3. 运行./emulator -list-avds并记下模拟器的名称。以MY_EMULATOR为例。
  4. 打开记事本并添加这两行(插入您的模拟器名称而不是MY_EMULATOR): cd ~/AppData/Local/Android/sdk/emulator; ./emulator -avd MY_EMULATOR
  5. 将文件保存在方便的地方,如myfile.sh。您可以将“myfile”更改为最适合您,但需要扩展名.sh。
  6. 在存储myfile.sh的目录中打开Git Bash并运行chmod +x myfile.sh。记得把你的文件名而不是myfile。

就是这样!从现在开始,每次你需要启动该模拟器时,只需找到你的myfile.sh并双击它并等待你的Android模拟器启动!


3
投票

现在假设您已经安装了Android Studio(2.2)并且只有1个模拟器,您可以使用这个一个线程

export ANDROID_SDK_ROOT=~/Library/Android/sdk/ && emulator '@'`emulator -list-avds`

如果您经常这样做,请更容易:

$ echo 'export ANDROID_SDK_ROOT=~/Library/Android/sdk/' >> ~/.profile

~.aliases添加别名

alias androidup="emulator '@'`emulator -list-avds`" 

在测试之前回想一下source ~/.profile ~/.aliases

下次只是$ androidup


2
投票

可用的avd名称列表

.android / DEP

/ SDK_PATH / tools / emulator -netdelay none -n​​etspeed full -avd“AVD_NAME”


1
投票

在Windows中,我使用此PowerShell脚本启动它。

$em = $env:USERPROFILE+"\AppData\Local\Android\sdk\tools\emulator.exe"; 
Start-Process $em " -avd Nexus_5X_API_24" -WindowStyle Hidden;

1
投票

在Mac(和我认为的Linux)上,在创建AVD后,您可以创建一个别名:alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

注意:别名的执行不会锁定您的终端,如果您需要,只需删除最后一个'&'。

运行emulator它会给你一个错误,因为他希望在你当前的位置,你有:/emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'来启动模拟器。


0
投票

使用dns帮助从命令行启动模拟器

模拟器程序位置:/ Users / {{UserName}} / Library / Android / sdk / tools

  1. 检查现有的avd: - emulator -list-avds
  2. 使用dns set / Users / {{UserName}} / Library / Android / sdk / tools / emulator -avd启动模拟器Pixel_API_26 -dns-server 8.8.8.8

0
投票

我使用Zenity编写了这个简单的shell脚本,可以让你选择你想要运行的avd。如果未定义ANDROID_HOME,则只需将其替换为模拟器的完整路径即可。这对于s​​elect而不是Zenity也很容易,但我选择了Zenity,因为我从xfce-application菜单运行它(虽然是.desktop文件)。

#!/bin/sh

opt=$(zenity --title="Choose AVD" --text="Choose which emulator to start" --list \
                   --column="Devices" --separator="\n" `$ANDROID_HOME/emulator/emulator -list-avds`);

$ANDROID_HOME/emulator/emulator -avd $opt

0
投票

运行第一个可用的模拟器:

~/Library/Android/sdk/tools/emulator -avd `~/Library/Android/sdk/tools/emulator -list-avds | awk '{print $1}'`

0
投票
  1. 打开CMD
  2. 获取所有模拟器列表(C:\ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -list-avds)
  3. 选择任何模拟器(C:\ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -avd Pixel_2_API_28)

219
投票

列出所有模拟器:

emulator -list-avds

使用-avd标志运行其中一个列出的模拟器:

emulator -avd @name-of-your-emulator

emulator所在的地方:

${ANDROID_SDK}/tools/emulator

77
投票

我认为通过终端到达它的最佳方式是:

cd ~/Library/Android/sdk/tools

To run a certain AVD directly:

./emulator -avd {AVD_NAME}

To list your AVDs use :

./emulator -list-avds

25
投票

只是要添加到此处,每当您收到“错误:设备脱机”时,表示由于模拟器启动所花费的时间而导致与仿真器和adb桥的连接中断。

此时不要重新启动模拟器,而是尝试下面两个命令,再次停止和启动adb桥。

adb kill-server

adb start-server


24
投票

Here您可以通过命令行检查执行此命令的选项:

emulator -avd avd_name [-option [value]] ... [-qemu args]

例如,我使用它如下所示:

emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0

12
投票

打开CMD

  1. 打开命令提示符
  2. 在我的情况下键入模拟器的路径

C:\ adt-bundle-windows-x86_64-20140702 \ sdk \ tools enter image description here

  1. 在我的例子中写“emulator -avd emulatorname”

模拟器 - 名为AdilVD

enter image description here


10
投票

如果您严格尝试从命令行运行模拟器,请在OSX中尝试此操作。

"/Applications/Android Studio.app/sdk/tools/emulator" -avd <NAMEOFDEVICE> -netspeed full -netdelay none

您可以通过向.bash_profile添加别名并将其发送到后台作业来简化它。

alias android='/Applications/Android\ Studio.app/sdk/tools/emulator <NAMEOFDEVICE> -netspeed full -netdelay none &'

让Bash知道这些变化。

source ~/.bash_profile

8
投票

打开命令提示符并转到<android-Home>\sdk\tools>emulator -avd <AVD_NAME>

这里"emulator"是用于打开Android虚拟设备的命令。


4
投票

(Linux)在终端上复制并粘贴并以蓝色更改三个字段

/home/YouUser/Folder/adt-bundle-linux-x86_64-20140702/sdk/tools/emulator64-x86 -avd Android5.1.1

YouUser = user of session in linux
Folder = path of folfer
Android5.1.1 = You version of android in the emulator,for example (Android4.4.2)

你可以在你的文件夹中查看模拟器home cd /home/Youuser/.android/avd/

© www.soinside.com 2019 - 2024. All rights reserved.