Android öykünücüsünü komut satırından nasıl başlatırım?


372

Mac'teyim, terminalden Android geliştirme üzerinde çalışıyorum. HelloWorld projesini başarıyla oluşturdum ve şimdi Android emülatöründeki komut satırından çalıştırmaya çalışıyorum. HelloWorld projem için öykünücüyü hangi komut çalıştırır?

PATH'ımda zaten Android araçları ve platform araçları var.

Düzenle:

Emülatöre HelloWorld projemi komut satırından çalıştırmasını nasıl söyleyebilirim? Projeyi zaten karınca ile inşa ettim.


Alakalı dokümanlar: ile oluştur avdmanagerve başlat emulator.
jchook

Yanıtlar:


380

Projenizi oluşturduğunuzu ve sadece başlatmanız gerektiğini varsayıyorum, ancak herhangi bir AVD'niz yok ve tüm eylemler için komut satırı kullanmanız gerekiyor. Aşağıdakileri yapmanız gerekir.

  1. İhtiyacınız olan platform için yeni bir sanal cihaz (AVD) oluşturun. android create avd -n <name> -t <targetID>AVD'nizi oluşturmak için komut satırı kullanmanız gerekiyorsa, targetID'nin ihtiyacınız olan API düzeyi olduğu yeri arayabilirsiniz . GUI'yi kullanabiliyorsanız, sadece yazın android avdve aynı şeyi yapabileceğiniz yöneticiyi başlatacaktır. AVD yönetimi hakkında daha fazla bilgiyi GUI ve komut satırı üzerinden okuyabilirsiniz .
  2. AVD'yi komut kullanarak emulator -avd <name>veya önceden başlatılan GUI aracılığıyla çalıştırın. Emülatör tamamen yüklenene kadar bekleyin, biraz zaman alır. Burada ek seçenekler hakkında bilgi edinebilirsiniz .
  3. Şimdi uygulamayı AVD'nize yüklemelisiniz. Genellikle geliştirme sırasında sadece projeyi oluşturmak için kullandığınız Ant komut dosyasını kullanırsınız, sadece installhedef seçin . Ancak, komutu kullanarak uygulamayı manuel olarak yükleyebilirsiniz adb install <path-to-your-APK>.
  4. Şimdi taklitçiye geçin ve uygulamanızı normal bir cihazda olduğu gibi başlatıcı üzerinden başlatın. Ya da, alternatif olarak, aşağıdaki komutu kullanabilirsiniz: adb shell am start -a android.intent.action.MAIN -n <package>/<activity class>. Örneğin: adb shell am start -a android.intent.action.MAIN -n org.sample.helloworld/org.sample.helloworld.HelloWorld. Bir yorumcunun önerdiği gibi, org.sample.helloworld.HelloWorldyukarıdaki satırda sadece yerine kullanabilirsiniz .HelloWorldve bu da işe yarayacaktır.

1
4 puan listeniz aradığım şey. Ben çalıştırdığınızda adb install <path-to-your-APK>, ben olsun error: device not found. Öykünücüyü bir kabukta ve adb install komutunu başka bir kabukta çalıştırırsam, alıyorum error: device offline. Taklit edilmiş bir sanal cihazı nasıl ayarlarım?
Thierry Lam

3
Tamam, cevabın önceki versiyonundaki bilgileri geri getirdi. :) Cihazın çevrimdışı olduğu mesajını alırsanız, sistemin yüklenmesine izin vermediğini düşünüyorum. Android logosunu gösterdiğinde emülatöre komut göndermeyi denemek işe yaramaz, size kilit ekranını gösterene kadar beklemeniz gerekir. Cihazınıza komut göndermek için başka bir kabuk örneği kullanmanız gerektiğinde haklısınız. Bu arada, adb deviceskomutu kullanarak cihazların mevcut durumunu kontrol edebilirsiniz .
Malcolm

1
@ThomasW Teşekkürler, bu bilgiyi cevaba ekledim.
Malcolm

1
@ L2G Bunu komut dosyası olarak çalıştırırsanız, evet, bunu yapabilirsiniz. Cevabı yazdığımda, her şeyi elle yaptığınızı varsaydım, bu durumda elbette kendinizi bekleyebilirsiniz.
Malcolm

4
adb-server'ı yeniden başlatın: adb kill-server; adb start-servereğer hiçbir şey adb devices
görünmüyorsa

278

Tüm emülatörlerinizi listeleyin:

emulator -list-avds

Listelenen emülatörlerden birini -avdbayrakla çalıştırın:

emulator -avd @name-of-your-emulator

emulatoraltında nerede :

${ANDROID_SDK}/tools/emulator

2
Bir Linux terminalinden çalıştırıyorsanız cd, $ ANDROID_SDK / tools klasörüne girmeniz gerekir , aksi takdirde çalışmaz.
shimatai

4
Teşekkürler! Eğer kullanıyorsanız emulator: daha sık neden bir takma ad oluşturmaz nano ~/.bashrc> eklemek alias emulator='$ANDROID_HOME/tools/emulator', kaydetmek, . ~/bashrcve bitirdiniz. ( ANDROID_HOMEkullanılan doğru değişkenle veya android klasörün statik yoluyla değiştirin).
Samuel Elh

3
Aşağıdaki hata ortaya çıkarsa: HATA: ./ android / qt / qt_setup.cpp: 28: ../emulator/lib64/qt/lib adresinde Qt kütüphanesi bulunamadı, $ ANDROID_HOME / tools'dan emülatörün başlatılması bir çözümdür. github.com/decosoftware/deco-ide/issues/289
tebanep

Gerçekten toolsklasöre gitmezseniz - gerçekten işe yaramaz. Hata aldım PANIC: Missing emulator engine program for 'x86' CPU.. (Linux'tayım, OpenSUSE.) Ben gittik toolsve sonra sadece koştu emulator -avd "{name}"- o zaman çalıştı.
pesho hristov

100

Ben terminal üzerinden ulaşmak için en iyi yolu olduğunu düşünüyorum:

cd ~/Library/Android/sdk/tools

Belirli bir AVD'yi doğrudan çalıştırmak için:

./emulator -avd {AVD_NAME}

AVD'lerinizi listelemek için şunu kullanın:

./emulator -list-avds

Windows için yol nedir?
qwertzguy

9
Ah buldum: C: \ Kullanıcılar \ <kullanıcı> \ AppData \ Local \ Android \ sdk \ emulator
qwertzguy

1
benim için çalıştı sadece biri, thx - ama yine de her zaman yolumuza veya smth bc cd'ing eklemek için orada biraz güçlük
John D

@JohnD ne dedi - komutun bir ./parçası emulatorolarak bir yola / takma ada nasıl eklerim ?
DaveNOTDavid

Linux'ta benim için yol bu ~/Android/Sdk/emulator.
Tyler Collier

26

Buraya eklemek için, "hata: cihaz çevrimdışı" ifadesi, emülatör ve adb köprüsü ile bağlantının, emülatör başlangıcında geçen süre nedeniyle kesildiği anlamına gelir.

Bu noktada öykünücüyü yeniden başlatmak yerine adb köprüsünü durduran ve yeniden başlatan iki komutun altında deneyin.

adb kill-server

adb başlangıç ​​sunucusu


Windows'da, Görev Yöneticisi'ni kullanarak adb.exe görevini de öldürmeniz gerekebilir.
Carl

25

Burada bu komutu komut satırı üzerinden yürütme seçeneklerini kontrol edebilirsiniz:

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

Örneğin, aşağıdaki gibi kullanıyorum:

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

Merhaba germangti, bende aynı sorun var. "Geçerli ABI'ler: ABI yok. Hata: Seçili hedef için geçersiz - ab x86" alıyorum. Sorunu nasıl düzelttiniz?
Muneer Muhammed

15

CMD'yi aç

  1. Komut İstemini Aç
  2. benim durumumda emülatör yolunu yaz

C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ araçları resim açıklamasını buraya girin

  1. benim durumumda "emulator -avd emulatorname" yaz

emülatör -avd AdilVD

resim açıklamasını buraya girin


13

Emülatörünü komut satırından kesinlikle çalıştırmaya çalışıyorsanız bunu OSX'te deneyin.

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

.Bash_profile öğesine bir takma ad ekleyerek ve bunu bir arka plan işine göndererek basitleştirebilirsiniz.

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

Bash'e değişiklikler hakkında bilgi verin.

source ~/.bash_profile

zsh: böyle bir dosya veya dizin yok: NAMEOFDEVICE
Ben Sinclair

2
@Andy NAMEOFDEVICE, taklitçinin gerçek adıyla değiştirmeniz gerekiyor . Bir yapmak emulator -list-avdssisteminizde olması AVDS bir listesini almak için.
nabn

9

Komut istemini açın ve <android-Home>\sdk\tools>emulator -avd <AVD_NAME>

İşte Android Sanal Cihazınızı"emulator" açmak için kullanılan komut .


9

Git Bash'iniz varsa, öykünücünüzü ilk kurulumla çift tıklatarak açabilirsiniz (yalnızca Windows 10'da test edilmiştir) :

  1. Git Bash'i açın.
  2. Çalıştırmak cd ~/AppData/Local/Android/sdk/emulator
  3. Çalıştırın ./emulator -list-avdsve emülatörün adını not edin.MY_EMULATORÖrneğin.
  4. Not Defteri'ni açın ve şu iki satırı ekleyin (yerine taklitçinizin adını girin MY_EMULATOR):

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

  5. Dosyayı dosyam olarak uygun bir yere kaydedin. sh . "Dosyam" ı size en uygun şekilde değiştirebilirsiniz, ancak .sh uzantısı gereklidir.

  6. Myfile.sh dosyasını sakladığınız dizinde Git Bash'i açın ve çalıştırın chmod +x myfile.sh. Dosyam yerine dosyanızın adını girmeyi unutmayın .

Ve bu kadar! Şu andan itibaren, bu emülatörü başlatmanız gerektiğinde, sadece myfile.sh dosyasını bulun ve üzerine çift tıklayın ve Android emülatörünüzün başlamasını bekleyin!


5

(Linux) Terminalinizde Kopyala & Yapıştır ve üç alanı mavi olarak değiştirme

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

öykünücüler klasörünüzdeki home cd /home/Youuser/.android/avd/


5

android create avdKomut kaldırılmıştır. Şimdi avdmanagerkomut satırından öykünücüler başlatmak için kullanılması önerilir .

Öncelikle, henüz mevcut değilse yeni bir emülatör oluşturun:

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

Bu, API 26 ile eşleşen ve Google API'larının yüklü olduğu bir X86 sistem görüntüsünün yüklü olduğunu varsayar.

Ardından, öykünücüyü ile başlatabilirsiniz emulator @MyEmulator.


4

Günümüzde, benim durumumda Android Studio yüklü (2.2) ve sadece 1 emülatör varsa, bu tek astarı kullanabilirsiniz

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

Bunu sık sık yaparsanız, kolaylaştırın:

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

Adresine takma ad ekleyin ~.aliases

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

source ~/.profile ~/.aliasesTest etmeden önce hatırlayın

Bir dahaki sefere $ androidup


3

adresinde bulunan avd adının listesi

.android / avd

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


3

Windows'da, başlatmak için bu PowerShell betiğini kullanıyorum.

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

3
  1. CMD'yi aç
  2. Tüm Emulator listesini almak için (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -list-avds)
  3. Herhangi bir emülatör seçin (C: \ Users \ DJango \ AppData \ Local \ Android \ sdk \ emulator> emulator -avd Pixel_2_API_28)

1

Mac'te (ve sanırım Linux'ta) AVD'nizi oluşturduktan sonra bir takma ad yapabilirsiniz: alias run-android='~/Library/Android/sdk/tools/emulator -avd ${YOUR_AVD_NAME} &'

Not : takma adın yürütülmesi terminalinizi kilitlemez, isterseniz son '&' işaretini kaldırın .

emulatorKendi kendine çalıştır size bir hata verecektir, çünkü şu anki pozisyonunuzda aşağıdakilerin olmasını bekler: /emulator/qemu/${YOUR_PATFORM}/qemu-system-x86_64'öykünücüyü başlatmak.


1

Bu basit kabuk komut dosyasını, çalıştırmak istediğiniz avd'yi seçmenizi sağlayan Zenity'yi kullanarak yazdım. ANDROID_HOME tanımlı değilse, bunu taklitçinin tam yoluyla değiştirebilirsiniz. Bu, Zenity yerine seçim ile de kolay olurdu, ancak Zenity'yi seçtim, çünkü xfce-uygulama menüsünden çalıştırıyorum (.desktop dosyası olsa da).

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

Mevcut ilk emülatörü çalıştırın:

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

Benzer bir şey yapıyorum:~/Library/Android/sdk/tools/emulator -avd $(~/Library/Android/sdk/tools/emulator -list-avds | head -1)
Kamen Tsvetkov

0

DNS yardımı ile komut satırından öykünücüyü başlatma

Emülatör program konumu: / Users / {{UserName}} / Library / Android / sdk / tools

  1. Mevcut AVD'yi kontrol edin: - emulator -list-avds

  2. Emns programını dns set / Users / {{UserName}} / Library / Android / sdk / tools / emulator ile başlatın -avd Pixel_API_26 -dns-server 8.8.8.8


0

Zsh ile Ubuntu Linux için aşağıdaki talimatlara bakın :

  1. Terminal penceresini aç ( CTRL+ ALT+ T)
  2. nano ~/.zshrcProfilinizi düzenlemek için komutu çalıştırın
  3. Açılan dosyaya aşağıdaki satırları ekleyin:
export ANDROID_SDK_HOME="~/Android/Sdk"
alias emulator="$ANDROID_SDK_HOME/emulator/emulator"
  1. Dosyayı kaydedin ( CTRL+ O, CTRL+ X)
  2. Komutu çalıştırarak profili kaynaklayın source ~/.zshrc veya oturumu kapatın ve tekrar oturum açın
  3. emulator -helpTerminalde komutu çalıştırarak test edin

NOT : Aynı olmalı bashdeğiştirerek .zshrcile.bashrc


0

Geç kaldım, ama paylaşmak istiyorum bu yüzden daha sonra gerektiğinde bazı ve bana yardımcı olabilir :), Yani aşağıda bash komut dosyası kullanarak bir komutla komut satırından emülatör açmanın yolu. MX Linux kullanıyorum ancak süreç tüm işletim sistemlerinde aynı

1- Önce kurulu emülatörleri kontrol edin

emulator -list-avds

aşağıdaki gibi sonuçlanacaktır

emulator -list-avds
Nexus_4_API_28
Pixel_2_API_28

2- Herhangi bir düz metin veya kod düzenleyici açın ve yeni bir dosya oluşturun ve aşağıdaki gibi yazın

#!/bin/sh
emulator -avd Nexus_4_API_28

Nexus_4_API_28 ilk adımda aldığınızkini yazmak istediğiniz emülatör

bu dosyayı .sh uzantısıyla kaydet

3- Ardından, dosyayı yürütülebilir yapmak için izinleri değiştirin:

chmod u+x emu.sh

4- şimdi emülatör sadece şu bash betiği dosyayı aşağıdaki komutla

./emu.sh

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.