簡體   English   中英

如何從命令行啟動 Android 模擬器?

[英]How do I launch the Android emulator from the command line?

我在 Mac 上,正在從終端進行 Android 開發。 我已經成功創建了HelloWorld項目,現在我正在嘗試從 Android 模擬器中的命令行運行它。 哪個命令為我的 HelloWorld 項目運行模擬器?

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

編輯:

如何讓模擬器從命令行運行我的 HelloWorld 項目? 我已經用 ant 構建了項目。

我假設您已經構建了您的項目並且只需要啟動它,但是您沒有創建任何 AVD,並且必須使用命令行來執行所有操作。 您必須執行以下操作。

  1. 為您需要的平台創建一個新的虛擬設備 (AVD)。 如果您必須使用命令行來創建您的 AVD,您可以調用android create avd -n <name> -t <targetID>其中 targetID 是您需要的 API 級別。 如果您可以使用 GUI,只需輸入android avd它將啟動管理器,您可以在其中執行相同的操作。 您可以 通過 GUI命令行閱讀有關AVD 管理的更多信息。
  2. 使用命令emulator -avd <name>或通過先前啟動的 GUI 運行 AVD。 等到模擬器完全加載,這需要一些時間。 您可以在此處閱讀有關其他選項的信息
  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中的org.sample.helloworld.HelloWorld替換為.HelloWorld ,它也可以工作。

列出所有模擬器:

emulator -list-avds

使用-avd標志運行列出的模擬器-avd

emulator -avd @name-of-your-emulator

emulator所在的位置:

${ANDROID_SDK}/tools/emulator

我認為通過終端到達它的最佳方式是:

cd ~/Library/Android/sdk/emulator

直接運行某個 AVD:

./emulator -avd {AVD_NAME}

要列出您的 AVD,請使用:

./emulator -list-avds

只是在這里補充一下,每當您收到“錯誤:設備離線”時,表示與模擬器和 adb 網橋的連接由於模擬器啟動所花費的時間而中斷。

此時不要重新啟動模擬器,而是嘗試以下兩個命令,這些命令再次停止和啟動 adb 橋。

adb 殺死服務器

adb 啟動服務器

在這里,您可以通過命令行檢查執行此命令的選項:

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

例如,我像下面這樣使用它:

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

打開CMD

  1. 打開命令提示符
  2. 在我的例子中輸入模擬器的路徑

C:\\adt-bundle-windows-x86_64-20140702\\sdk\\tools 在此處輸入圖片說明

  1. 在我的情況下寫“emulator -avd emulatorname”

模擬器 -avd AdilVD

在此處輸入圖片說明

如果您嚴格嘗試從命令行運行模擬器,請在 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

打開命令提示符並轉到<android-Home>\\sdk\\tools>emulator -avd <AVD_NAME>

這里的"emulator"是用來打開你的Android Virtual Device的命令。

如果你有 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。 您可以根據自己的需要更改“myfile”,但需要擴展名.sh

  6. 在存儲myfile.sh的目錄中打開 Git Bash 並運行chmod +x myfile.sh 請記住輸入文件名而不是myfile

就是這樣! 從現在開始,每次您需要啟動該模擬器時,只需找到您的myfile.sh並雙擊它並等待您的 Android 模擬器啟動!

帶有 zsh 的 Mac說明:

打開終端窗口 (CTRL+ALT+T) 運行命令nano ~/.zshrc編輯您的配置文件 在打開的文件中添加以下行:

export ANDROID_SDK_HOME="~/Library/Android/Sdk"

alias emulator="$ANDROID_SDK_HOME/emulator/emulator"

保存文件 (CTRL+O, CTRL+X) 通過運行命令 source ~/.zshrc 獲取配置文件,或者通過運行命令注銷並重新登錄測試:

emulator -helpemulator -list-avds在終端中顯示您的模擬器並使用命令運行 Android 模擬器:

emulator -avd <name>

注意:bash 應該是相同的,將 .zshrc 替換為 .bashrc

(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/ 中查看模擬器

現在假設你在我的例子中安裝了 Android Studio (2.2) 並且只有 1 個模擬器,你可以使用這個 liner

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

不推薦使用android create avd命令。 現在建議使用avdmanager啟動模擬器。

首先,如果尚不存在,則創建一個新的模擬器:

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

這假設您已經安裝了與 API 26 匹配的 X86 系統映像,並安裝了 Google API。

然后,您可以使用emulator @MyEmulator啟動emulator @MyEmulator

  1. 打開命令
  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)

可用的 avd 名稱列表

.android/avd

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

在 Windows 中,我使用這個 PowerShell 腳本來啟動它。

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

進入模擬器所在目錄

${ANDROID_SDK}/工具/模擬器

從 CLI 檢查模擬器列表

模擬器 -list-avds

從列表中運行 AVD

模擬器 -avd {avd_name}

我遲到了,在這里但想分享,所以在以后需要時,它可能對某人和我也有幫助:),所以下面是使用 bash 腳本通過一個命令從命令行打開模擬器的方法。 我正在使用 MX Linux,但所有操作系統上的過程都相同

1-首先檢查安裝的模擬器

emulator -list-avds

結果如下

emulator -list-avds
Nexus_4_API_28
Pixel_2_API_28

2-打開任何純文本或代碼編輯器並創建一個新文件並編寫如下

#!/bin/sh
emulator -avd Nexus_4_API_28

Nexus_4_API_28 是我想打開的模擬器,你寫你從第一步得到的

使用 .sh 擴展名保存此文件

3- 然后,更改文件的權限以使其可執行:

chmod u+x emu.sh

4- 現在使用以下命令打開仿真器,只執行此 bash 腳本文件

./emu.sh

在此處輸入圖片說明

在 Mac(我認為是 Linux)上,創建 AVD 后,您可以創建別名: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

注意:別名的執行不會鎖定您的終端,如果需要,只需刪除最后一個'&'

Run emulator it self 會給你一個錯誤,因為他希望在你當前的位置,你有: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'來啟動模擬器。

我使用 Zenity 編寫了這個簡單的 shell 腳本,它可以讓您選擇要運行的 avd。 如果您沒有定義 ANDROID_HOME,您可以將其替換為模擬器的完整路徑。 使用 select 而不是 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

運行第一個可用的模擬器:

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

對於一鍵(批處理文件)啟動,這就是我所做的:

  • 從 Android Studio -> 工具 -> AVD 管理器 -> 單擊向下箭頭並選擇查看詳細信息(對我來說是Pixel_2_API_28 ,因此在下面進行相應更改)獲得 AVD 的名稱
  • 創建一個 start.bat 文件並將以下內容放入其中:
 c: cd C:\\Program Files (x86)\\Android\\android-sdk\\emulator\\ emulator -avd Pixel_2_API_28

說明:

  • 第一行:對我來說是必要的,因為我從 d 啟動它:
  • 第二行:對我來說沒有使用工具\\模擬器
  • 第三行:確保您更改了 AVD 的名稱(此處為Pixel_2_API_28

使用:

  • 從命令行啟動 start.bat
  1. 列出所有安裝的設備: emulator -list-avds

這將列出您的 Android Studio 中安裝的所有設備。

  1. 運行模擬器: emulator -avd device_name

例如,如果您在選項 1 中運行命令后得到Pixel_3a_API_30_x86 ,那么您運行模擬器的命令將是: emulator -avd Pixel_3a_API_30_x86

使用 dns 幫助從命令行啟動模擬器

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

  1. 檢查現有的 avd :- 模擬器 -list-avds

  2. 使用 dns set /Users/{{UserName}}/Library/Android/sdk/tools/emulator -avd Pixel_API_26 -dns-server 8.8.8.8 啟動模擬器

請參閱以下有關帶有zsh 的Ubuntu Linux 的說明:

  1. 打開終端窗口( CTRL + ALT + T
  2. 運行命令nano ~/.zshrc來編輯您的配置文件
  3. 在打開的文件中添加以下幾行:
export ANDROID_SDK_HOME="~/Android/Sdk"
alias emulator="$ANDROID_SDK_HOME/emulator/emulator"
  1. 保存文件( CTRL + OCTRL + X
  2. 通過運行命令source ~/.zshrc獲取配置文件,或者只是注銷並重新登錄
  3. 通過在終端中運行命令emulator -help進行測試

注意bash應該是相同的,將.zshrc替換為.bashrc

  • 在cmd中輕松鍵入此命令。
  • Users\\ your user name \\之后替換
  • 如果您沒有此文件,請重新安裝 android studio。

在cmd中輸入這個命令

一個啟動器腳本,它列出了現有的 AVD 並讓你選擇你想要的。 需要python3至少v3.4 )和指向 Android SDK 目錄的有效環境變量ANDROID_HOMEANDROID_SDK

#!/usr/bin/env python3

import os
import subprocess
from pathlib import Path

android_emulator_dir: Path = Path(os.environ['ANDROID_HOME'] or os.environ['ANDROID_SDK']) / 'emulator'

if android_emulator_dir.exists():
    emulator_dir = android_emulator_dir.absolute()
    print(f'SDK emulator dir: {emulator_dir}', end='\n\n')

    proc = subprocess.Popen(['./emulator', '-list-avds'], stdout=subprocess.PIPE, cwd=emulator_dir, text=True)
    avds = {idx: avd_name.strip() for idx, avd_name in enumerate(proc.stdout, start=1)}

    print('\n'.join([f'{idx}: {avd_name}' for idx, avd_name in avds.items()]))

    avd_idx = input("\nType AVD index and press Enter... ")
    avd_name = avds.get(int(avd_idx))

    if avd_name:
        subprocess.Popen(['./emulator', '-avd', avd_name, '-no-boot-anim'], cwd=emulator_dir)
    else:
        print('Invalid AVD index')
else:
    print(f'Either $ANDROID_HOME or $ANDROID_SDK must be defined!')

AppleScript 版本(僅限 MacOS)

osascript -e '
set avds to paragraphs of (do shell script "~/Library/Android/sdk/emulator/emulator -list-avds")
set avd to (choose from list avds with prompt "Please select an AVD to start" default items "None" OK button name {"Start"} cancel button name {"Cancel"})
do shell script "~/Library/Android/sdk/emulator/emulator -avd " & avd & " -no-boot-anim > /dev/null 2>&1 &"
'

上面的腳本也可以從Script Editor.appAutomator.app (單引號之間的位)運行。 您也可以使用腳本編輯器將其另存為原生 macos 應用程序:在菜單上選擇文件,按住 (選項)鍵,選擇另存為,然后選擇文件格式應用程序

Windows 10 對我有什么幫助:

1 cd C:\\Users\\xxx\\AppData\\Local\\Android\\Sdk\\emulator

2 列出所有可用的: emulator -list-avds

3 以非 GUI 模式啟動: emulator -avd Pixel_3a_API_30_x86 -no-window

對於自動化 (CI),我們執行了以下步驟:

  1. 首先,找到SDK的工具位置,並存儲在變量中以備后用。

     tools=$ANDROID_HOME/cmdline-tools/latest/bin arch="x86_64" package="system-images;android-23;google_apis;$arch"
  2. 確保已下載 Android 映像。

     $tools/sdkmanager "$package"
  3. 接受許可證。

     echo yes | $tools/sdkmanager --licenses
  4. 創建 AVD。

     echo no | $tools/avdmanager create avd --force --name MyAVD --abi google_apis/$arch --package "$package"

    對“是否要創建自定義硬件配置文件?...”說“不”

  5. 並行啟動模擬器。

     $ANDROID_HOME/emulator/emulator -netdelay none -netspeed full -no-snapshot-load -no-snapshot -avd MyAVD > /dev/null &
  6. 構建 APK。

     ./gradlew assembleDebug
  7. 最后,Android-tests (Instrumented tests) 自動檢測並在 Emulator 上運行。

     ./gradlew connectedAndroidTest

    請注意,因為我們並行啟動 Emulator,所以您需要等到 Emulator 准備好,並且在步驟 #7 之前。

    也許用腳本計算構建時間,如果構建所需的時間少於 Emulator-launch 所需的時間,請調用sleep

對於 Windows:

在Windows搜索欄中搜索環境,選擇“編輯系統環境變量”
在系統屬性 window 中,單擊環境變量並指定 PATH 環境變量的值:

C:\Users\{ USER }\AppData\Local\Android\Sdk\emulator.

現在打開 CMD 或 Powershell 並輸入: emulator -list-avds這將顯示所有 AVD 的列表。 要運行特定的 AVD,請在 CMD/Powershell 中鍵入: emulator -avd {EmulatorName}

如果您添加了 android 模擬器的正確路徑,AVD 將打開。

如果您已經有了模擬器並且想使用它使用命令,只需使用這 1 行代碼

cd  C:\Users\yourUserName\AppData\Local\Android\Sdk\emulator | ./emulator -avd Pixel_5_API_32

以后謝謝了。。。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM