Bagaimana cara meluncurkan emulator Android dari baris perintah?


373

Saya di Mac, sedang mengerjakan pengembangan Android dari terminal. Saya telah berhasil membuat proyek HelloWorld dan sekarang saya mencoba menjalankannya dari baris perintah di emulator Android. Perintah mana yang menjalankan emulator untuk proyek HelloWorld saya?

Saya sudah memiliki alat Android dan alat platform di PATH saya.

Edit:

Bagaimana saya memberi tahu emulator untuk menjalankan proyek HelloWorld saya dari baris perintah? Saya sudah membangun proyek dengan semut.


Dokumen yang relevan: buat dengan avdmanagerdan mulai dengan emulator.
jchook

Jawaban:


380

Saya berasumsi bahwa Anda telah membangun proyek Anda dan hanya perlu meluncurkannya, tetapi Anda tidak memiliki AVD yang dibuat dan harus menggunakan baris perintah untuk semua tindakan. Anda harus melakukan hal berikut.

  1. Buat perangkat virtual baru (AVD) untuk platform yang Anda butuhkan. Jika Anda harus menggunakan baris perintah untuk membuat AVD Anda, Anda dapat memanggil di android create avd -n <name> -t <targetID>mana targetID adalah tingkat API yang Anda butuhkan. Jika Anda dapat menggunakan GUI, cukup ketik android avddan itu akan meluncurkan manajer, di mana Anda dapat melakukan hal yang sama. Anda dapat membaca lebih lanjut tentang manajemen AVD melalui GUI dan melalui baris perintah .
  2. Jalankan AVD dengan menggunakan perintah emulator -avd <name>atau melalui GUI yang diluncurkan sebelumnya. Tunggu hingga emulator terisi penuh, butuh beberapa saat. Anda dapat membaca tentang opsi tambahan di sini .
  3. Sekarang Anda harus menginstal aplikasi ke AVD Anda. Biasanya selama pengembangan Anda hanya menggunakan skrip Ant yang sama dengan yang Anda gunakan untuk membangun proyek, cukup pilih installtarget. Namun, Anda dapat menginstal aplikasi secara manual menggunakan perintah adb install <path-to-your-APK>.
  4. Sekarang beralihlah ke emulator dan luncurkan aplikasi Anda seperti pada perangkat normal apa pun, melalui peluncur. Atau, sebagai alternatif, Anda dapat menggunakan perintah berikut: adb shell am start -a android.intent.action.MAIN -n <package>/<activity class>. Sebagai contoh: adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld. Seperti yang disarankan komentator, Anda juga dapat mengganti org.sample.helloworld.HelloWorlddi baris di atas dengan adil .HelloWorld, dan itu juga akan berfungsi.

1
Daftar 4 poin Anda adalah apa yang saya cari. Ketika saya berlari adb install <path-to-your-APK>, saya mengerti error: device not found. Jika saya menjalankan emulator di satu shell dan perintah install adb di yang lain, saya mengerti error: device offline. Bagaimana cara mengatur perangkat virtual yang ditiru?
Thierry Lam

3
OK, mengembalikan info dari versi sebelumnya dari jawaban. :) Jika Anda mendapatkan pesan bahwa perangkat sedang offline, saya pikir Anda belum membiarkan sistem memuat. Tidak ada gunanya mencoba mengirim perintah ke emulator ketika itu menunjukkan logo Android, Anda harus menunggu sampai itu menunjukkan layar kunci. Dan Anda benar bahwa Anda harus menggunakan contoh shell lain untuk mengirim perintah ke perangkat Anda. Omong-omong, Anda dapat memeriksa status perangkat saat ini dengan menggunakan adb devicesperintah.
Malcolm

1
@ThomasW Terima kasih, saya telah menambahkan info ini ke jawabannya.
Malcolm

1
@ L2G Jika Anda menjalankan ini sebagai skrip, maka ya, Anda bisa melakukannya. Ketika saya menulis jawabannya, saya berasumsi Anda melakukan semuanya dengan tangan, dalam hal ini, tentu saja, Anda bisa menunggu sendiri.
Malcolm

4
restart adb-server dengan: adb kill-server; adb start-serverjika tidak ada yang muncul padaadb devices
evandrix

278

Daftar semua emulator Anda:

emulator -list-avds

Jalankan salah satu emulator yang terdaftar dengan -avdbendera:

emulator -avd @name-of-your-emulator

di mana emulatorberada di bawah:

${ANDROID_SDK}/tools/emulator

2
Jika Anda menjalankan dari terminal Linux, Anda harus cdmasuk ke folder $ ANDROID_SDK / tools atau tidak akan berfungsi.
shimatai

4
Terima kasih! Jika Anda emulatorlebih sering menggunakan mengapa tidak membuat alias: nano ~/.bashrc> tambah alias emulator='$ANDROID_HOME/tools/emulator', simpan, . ~/bashrcdan Anda selesai. (ganti ANDROID_HOMEdengan variabel yang benar digunakan atau jalur statis ke folder android).
Samuel Elh

3
Jika kesalahan berikut muncul: ERROR: ./ android / qt / qt_setup.cpp: 28: Pustaka Qt tidak ditemukan di ../emulator/lib64/qt/lib, memulai emulator dari $ ANDROID_HOME / tools adalah solusi. github.com/decosoftware/deco-ide/issues/289
tebanep

Jika Anda benar-benar tidak menavigasi ke toolsfolder - itu benar-benar tidak akan berfungsi. Saya mendapat kesalahan PANIC: Missing emulator engine program for 'x86' CPU.. (Saya menggunakan Linux, OpenSUSE.) Setelah saya menavigasi ke toolsdan kemudian hanya berlari emulator -avd "{name}"- maka itu berhasil.
pesho hristov

100

Saya pikir cara terbaik untuk mencapainya melalui terminal adalah:

cd ~/Library/Android/sdk/tools

Untuk menjalankan AVD tertentu secara langsung:

./emulator -avd {AVD_NAME}

Untuk daftar AVD Anda gunakan:

./emulator -list-avds

Apa jalur untuk Windows?
qwertzguy

9
Ah menemukannya: C: \ Users \ <user> \ AppData \ Local \ Android \ sdk \ emulator
qwertzguy

1
hanya satu yang bekerja untuk saya, thx - tetapi apakah ada juga untuk menambahkannya ke jalan Anda atau bertele-tele karena setiap kali agak merepotkan
John D

Apa yang dikatakan @JohnD - bagaimana saya memasukkan ./sebagai bagian dari emulatorperintah ke path / alias?
DaveNOTDavid

Di Linux jalan bagi saya adalah ~/Android/Sdk/emulator.
Tyler Collier

26

Hanya untuk menambahkan di sini, setiap kali Anda mendapatkan "error: device offline" berarti koneksi dengan emulator & adb bridge telah terputus karena waktu yang diperlukan dalam startup emulator.

Daripada memulai kembali emulator pada titik ini coba di bawah ini dua perintah yang berhenti & memulai jembatan adb lagi.

adb kill-server

adb start-server


Di Windows, Anda mungkin juga harus mematikan tugas adb.exe menggunakan Task Manager.
Carl

25

Di sini Anda dapat memeriksa opsi untuk menjalankan perintah ini melalui baris perintah:

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

Sebagai contoh, saya menggunakannya seperti ini di bawah ini:

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

Hai germangti, saya memiliki masalah yang sama. Saya mendapatkan "ABI yang valid: tidak ada ABI. Kesalahan: --abi x86 tidak valid untuk target yang dipilih.". Bagaimana Anda memperbaiki masalah ini?
Muneer Muhammed

15

buka CMD

  1. Buka Command Prompt
  2. ketik jalur emulator dalam kasus saya

C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ tools masukkan deskripsi gambar di sini

  1. tulis "emulator -avd emulatorname" dalam kasus saya

emulator -avd AdilVD

masukkan deskripsi gambar di sini


13

Jika Anda benar-benar mencoba menjalankan emulator dari baris perintah coba ini di OSX.

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

Anda dapat menyederhanakannya dengan menambahkan alias ke .bash_profile, dan mengirimkannya ke pekerjaan latar belakang.

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

Beri tahu Bash tentang perubahannya.

source ~/.bash_profile

zsh: tidak ada file atau direktori seperti itu: NAMEOFDEVICE
Ben Sinclair

2
@Andy Anda seharusnya mengganti NAMEOFDEVICEdengan nama emulator yang sebenarnya. lakukan emulator -list-avdsuntuk mendapatkan daftar avds yang Anda miliki di sistem Anda.
nabn

9

Buka command prompt dan pergi ke <android-Home>\sdk\tools>emulator -avd <AVD_NAME>

Ini "emulator"adalah perintah yang digunakan untuk membuka Perangkat Virtual Android Anda .


9

Jika Anda memiliki Git Bash, Anda dapat membuka emulator Anda dengan klik dua kali, dengan beberapa pengaturan awal (hanya diuji pada Windows 10) :

  1. Buka Git Bash.
  2. Lari cd ~/AppData/Local/Android/sdk/emulator
  3. Jalankan ./emulator -list-avdsdan catat nama emulator. MY_EMULATORsebagai contoh.
  4. Buka Notepad dan tambahkan dua baris ini (masukkan nama emulator Anda sebagai ganti MY_EMULATOR):

    cd ~/AppData/Local/Android/sdk/emulator; ./emulator -avd MY_EMULATOR

  5. Simpan file di tempat yang nyaman sebagai myfile. sh . Anda dapat mengubah "myfile" sebagai yang terbaik untuk Anda, tetapi ekstensi .sh diperlukan.

  6. Buka Git Bash di direktori tempat Anda menyimpan myfile.sh dan jalankan chmod +x myfile.sh. Ingatlah untuk meletakkan nama file Anda bukan myfile .

Dan itu dia! Mulai sekarang, setiap kali Anda perlu memulai emulator itu, cari saja myfile.sh Anda dan klik dua kali padanya dan tunggu emulator Android Anda diluncurkan!


5

(Linux) Di terminal Anda Salin & Tempel dan ubah tiga bidang dengan warna biru

/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)

Anda dapat melihat emulator di folder home Anda cd /home/Youuser/.android/avd/


5

The android create avdperintah usang. Sekarang disarankan untuk digunakanavdmanager emulator untuk memulai dari baris perintah.

Pertama, buat emulator baru jika belum ada:

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

Ini mengasumsikan bahwa Anda sudah menginstal gambar sistem X86 yang cocok dengan API 26, dan menginstal Google API.

Anda kemudian dapat meluncurkan emulator dengan emulator @MyEmulator.


4

Saat ini dengan asumsi Anda telah menginstal Android Studio (2.2) dalam kasus saya dan hanya 1 emulator yang mungkin Anda gunakan liner satu ini

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

Jika Anda sering melakukan ini, buatlah lebih mudah:

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

Tambahkan alias ke ~.aliases

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

Ingat kembali source ~/.profile ~/.aliases sebelum mengujinya

Lain kali saja $ androidup


3

daftar nama avd tersedia di

.android / avd

/ SDK_PATH / tools / emulator -netdelay none -netspeed full -avd "AVD_NAME"


3

Di windows, saya menggunakan skrip PowerShell ini untuk memulai.

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

3
  1. Buka CMD
  2. Untuk mendapatkan semua daftar Emulator (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -list-avds)
  3. Pilih emulator apa saja (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -avd Pixel_2_API_28)

1

Di Mac (dan Linux saya rasa), setelah Anda membuat AVD, Anda dapat membuat alias: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

Catatan : eksekusi alias tidak akan mengunci terminal Anda, jika Anda menginginkannya, hapus saja '&' yang terakhir .

Menjalankannya emulatorsendiri akan memberi Anda kesalahan karena dia berharap bahwa, pada posisi Anda saat ini, Anda harus: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'untuk memulai emulator.


1

Saya menulis skrip shell sederhana ini menggunakan Zenity yang memungkinkan Anda memilih AVD mana yang ingin Anda jalankan. Jika Anda tidak menetapkan ANDROID_HOME, Anda bisa menggantinya dengan path lengkap ke emulator. Ini akan mudah dilakukan dengan memilih alih-alih Zenity juga, tetapi saya memilih Zenity karena saya menjalankannya dari menu aplikasi xfce (meskipun file .desktop-file).

#!/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

1

Jalankan emulator pertama yang tersedia:

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

Saya melakukan sesuatu yang serupa:~/Library/Android/sdk/tools/emulator -avd $(~/Library/Android/sdk/tools/emulator -list-avds | head -1)
Kamen Tsvetkov

1

Saya terlambat, di sini tetapi ingin berbagi jadi mungkin itu membantu seseorang dan saya juga ketika dibutuhkan nanti :), Jadi di bawah ini adalah cara untuk membuka emulator dari baris perintah dengan satu perintah menggunakan skrip bash. Saya menggunakan MX Linux tetapi prosesnya sama pada semua sistem operasi

1- Pertama Periksa emulator yang diinstal

emulator -list-avds

itu akan menghasilkan seperti di bawah ini

emulator -list-avds
Nexus_4_API_28
Pixel_2_API_28

2- buka teks biasa atau editor kode dan buat file baru dan tulis seperti di bawah ini

#!/bin/sh
emulator -avd Nexus_4_API_28

Nexus_4_API_28 adalah emulator yang ingin saya buka Anda tulis milik Anda yang Anda dapatkan dari langkah pertama

simpan file ini dengan ekstensi .sh

3 - Kemudian, ubah izin pada file untuk membuatnya dapat dieksekusi:

chmod u+x emu.sh

4 - Sekarang buka emulator hanya menjalankan file skrip bash ini dengan perintah berikut

./emu.sh

masukkan deskripsi gambar di sini


Jawaban ini menghemat banyak waktu bagi saya dan tim saya. Terima kasih
Sopia Alfred

0

Memulai emulator dari baris perintah dengan bantuan dns

Lokasi program emulator: / Users / {{UserName}} / Library / Android / sdk / tools

  1. Periksa avd yang ada: - emulator -list-avds

  2. Mulai emulator dengan set dns / Users / {{UserName}} / Library / Android / SDK / tools / emulator -avd Pixel_API_26 -dns-server 8.8.8.8


0

Lihat instruksi di bawah ini untuk Ubuntu Linux dengan zsh :

  1. Buka jendela terminal ( CTRL+ ALT+ T)
  2. Jalankan perintah nano ~/.zshrc untuk mengedit profil Anda
  3. Tambahkan baris berikut dalam file yang dibuka:
export ANDROID_SDK_HOME="~/Android/Sdk"
alias emulator="$ANDROID_SDK_HOME/emulator/emulator"
  1. Simpan file ( CTRL+ O, CTRL+ X)
  2. Sumber profil dengan menjalankan perintah source ~/.zshrc atau hanya logout dan masuk kembali
  3. Uji dengan menjalankan perintah emulator -helpdi terminal

CATATAN : Harus sama bashdengan mengganti .zshrcdengan.bashrc

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.