[英]How do I launch the Android emulator from the command line?
我在 Mac 上,正在從終端進行 Android 開發。 我已經成功創建了HelloWorld項目,現在我正在嘗試從 Android 模擬器中的命令行運行它。 哪個命令為我的 HelloWorld 項目運行模擬器?
我的 PATH 中已經有 Android 工具和平台工具。
編輯:
如何讓模擬器從命令行運行我的 HelloWorld 項目? 我已經用 ant 構建了項目。
我假設您已經構建了您的項目並且只需要啟動它,但是您沒有創建任何 AVD,並且必須使用命令行來執行所有操作。 您必須執行以下操作。
android create avd -n <name> -t <targetID>
其中 targetID 是您需要的 API 級別。 如果您可以使用 GUI,只需輸入android avd
它將啟動管理器,您可以在其中執行相同的操作。 您可以 通過 GUI和命令行閱讀有關AVD 管理的更多信息。emulator -avd <name>
或通過先前啟動的 GUI 運行 AVD。 等到模擬器完全加載,這需要一些時間。 您可以在此處閱讀有關其他選項的信息。install
目標。 但是,您可以使用命令adb install <path-to-your-APK>
手動安裝應用程序。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
./emulator -avd {AVD_NAME}
./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
如果您嚴格嘗試從命令行運行模擬器,請在 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 中測試) :
cd ~/AppData/Local/Android/sdk/emulator
./emulator -list-avds
並記下模擬器的名稱。 例如MY_EMULATOR
。 打開記事本並添加這兩行(插入模擬器的名稱而不是MY_EMULATOR
):
cd ~/AppData/Local/Android/sdk/emulator; ./emulator -avd MY_EMULATOR
將文件保存在方便的地方作為 myfile。 噓。 您可以根據自己的需要更改“myfile”,但需要擴展名.sh 。
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 -help
或emulator -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
。
可用的 avd 名稱列表
.android/avd
/SDK_PATH/tools/emulator -netdelay none -netspeed 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}'`
對於一鍵(批處理文件)啟動,這就是我所做的:
c: cd C:\\Program Files (x86)\\Android\\android-sdk\\emulator\\ emulator -avd Pixel_2_API_28
說明:
使用:
emulator -list-avds
這將列出您的 Android Studio 中安裝的所有設備。
emulator -avd device_name
例如,如果您在選項 1 中運行命令后得到Pixel_3a_API_30_x86
,那么您運行模擬器的命令將是: emulator -avd Pixel_3a_API_30_x86
使用 dns 幫助從命令行啟動模擬器
模擬器程序位置:/Users/{{UserName}}/Library/Android/sdk/tools
檢查現有的 avd :- 模擬器 -list-avds
使用 dns set /Users/{{UserName}}/Library/Android/sdk/tools/emulator -avd Pixel_API_26 -dns-server 8.8.8.8 啟動模擬器
nano ~/.zshrc
來編輯您的配置文件export ANDROID_SDK_HOME="~/Android/Sdk"
alias emulator="$ANDROID_SDK_HOME/emulator/emulator"
source ~/.zshrc
獲取配置文件,或者只是注銷並重新登錄emulator -help
進行測試注意: bash
應該是相同的,將.zshrc
替換為.bashrc
一個啟動器腳本,它列出了現有的 AVD 並讓你選擇你想要的。 需要python3
(至少v3.4
)和指向 Android SDK 目錄的有效環境變量ANDROID_HOME
或ANDROID_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!')
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.app
或Automator.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),我們執行了以下步驟:
首先,找到SDK的工具位置,並存儲在變量中以備后用。
tools=$ANDROID_HOME/cmdline-tools/latest/bin arch="x86_64" package="system-images;android-23;google_apis;$arch"
確保已下載 Android 映像。
$tools/sdkmanager "$package"
接受許可證。
echo yes | $tools/sdkmanager --licenses
創建 AVD。
echo no | $tools/avdmanager create avd --force --name MyAVD --abi google_apis/$arch --package "$package"
對“是否要創建自定義硬件配置文件?...”說“不”
並行啟動模擬器。
$ANDROID_HOME/emulator/emulator -netdelay none -netspeed full -no-snapshot-load -no-snapshot -avd MyAVD > /dev/null &
構建 APK。
./gradlew assembleDebug
最后,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.