Emülatör konsol komutları gönderme

Çalışan her sanal cihaz, emüle edilmiş cihaz ortamını sorgulamanıza ve kontrol etmenize olanak tanıyan bir konsol sağlar. Örneğin, uygulamanız emülatörde çalışırken bağlantı noktası yönlendirmeyi, ağ özelliklerini ve telefoni etkinliklerini yönetmek için konsolu kullanabilirsiniz.

Aşağıdaki komutların çalıştırılabilmesi için bir emülatörün çalışıyor olması gerekir. Emülatör çalıştırma hakkında daha fazla bilgi için Android Emülatör'de uygulamaları çalıştırma ve Emülatörü komut satırından başlatma başlıklı makaleleri inceleyin.

Konsol oturumunu başlatma ve durdurma

Konsola erişmek ve bir terminal penceresinden komut girmek için telnet kullanarak konsol bağlantı noktasına bağlanın ve kimlik doğrulama jetonunuzu girin. Konsol her OK gösterdiğinde komut almaya hazırdır. Tipik bir istem yoktur.

Çalışan bir sanal cihazın konsoluna bağlanmak için:

  1. Bir terminal penceresi açıp aşağıdaki komutu girin:
  2. telnet localhost console-port

    Emülatör pencere başlığı, ayrı bir pencerede çalıştırıldığında konsol bağlantı noktası numarasını listeler ancak araç penceresinde çalıştırıldığında listelemez. Örneğin, konsol bağlantı noktası 5554'ü kullanan bir emülatörün pencere başlığı Pixel8_API_34:5554 olabilir. Ayrıca, adb devices komutu, çalışan sanal cihazların ve bunların konsol bağlantı noktası numaralarının listesini yazdırır. Daha fazla bilgi için Cihaz sorgulama başlıklı makaleyi inceleyin.

    Not: Emülatör, 5554-5585 bağlantı noktalarındaki bağlantıları dinler ve yalnızca localhost bağlantılarını kabul eder.

  3. Konsolda OK simgesi gösterildikten sonra auth auth_token komutunu girin.
  4. Konsol komutları girebilmeniz için önce emülatör konsolunda kimlik doğrulama yapmanız gerekir. auth_token, ana dizininizdeki .emulator_console_auth_token dosyasının içeriğiyle eşleşmelidir.

    Bu dosya mevcut değilse telnet localhost console-port komutu, rastgele oluşturulmuş bir kimlik doğrulama jetonu içeren dosyayı oluşturur. Kimlik doğrulamayı devre dışı bırakmak için jetonu .emulator_console_auth_token dosyasından silin veya dosya yoksa boş bir dosya oluşturun.

  5. Konsola bağlandıktan sonra konsol komutlarını girin.
  6. Konsol komutlarının listesini görmek ve belirli komutlar hakkında bilgi edinmek için help, help command veya help-verbose değerini girin.

  7. Konsol oturumundan çıkmak için quit veya exit girin.

Aşağıda örnek bir oturum verilmiştir:

$ telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/Users/me/.emulator_console_auth_token'
OK
auth 123456789ABCdefZ
Android Console: type 'help' for a list of commands
OK
help-verbose
Android console command help:
    help|h|?         Prints a list of commands
    help-verbose     Prints a list of commands with descriptions
    ping             Checks if the emulator is alive
    automation       Manages emulator automation
    event            Simulates hardware events
    geo              Geo-location commands
    gsm              GSM related commands
    cdma             CDMA related commands
    crash            Crashes the emulator instance
    crash-on-exit    Simulates crash on exit for the emulator instance
    kill             Terminates the emulator instance
    restart          Restarts the emulator instance
    network          Manages network settings  (ethernet and cellular only)
    power            Power related commands
    quit|exit        Quits control session
    redir            Manages port redirections
    sms              SMS related commands
    avd              Controls virtual device execution
    qemu             QEMU-specific commands
    sensor           Manages emulator sensors
    physics          Manages physical model
    finger           Manages emulator finger print
    debug            Controls the emulator debug output tags
    rotate           Rotates the screen clockwise by 90 degrees
    screenrecord     Records the emulator's display
    fold             Folds the device
    unfold           Unfolds the device
    multidisplay     Configures the multi-display
    nodraw           turn on/off NoDraw mode. (experimental)
    resize-display   resize the display resolution to the preset size
    virtualscene-image  customize virtualscene image for virtulscene camera
    proxy            manage network proxy server settings
    phonenumber      set phone number for the device


try 'help <command>' for command-specific help
OK
exit
Connection closed by foreign host.

Emülatör komut referansı

Aşağıdaki tabloda, parametreleri ve değerleriyle birlikte emülatör konsolu komutları açıklanmaktadır:

Tablo 1. Emülatör konsol komutları

Genel komutlar Açıklama
avd {stop|start|status|name} Sanal cihazı aşağıdaki gibi sorgular, kontrol eder ve yönetir:
  • stop: Cihazın yürütülmesini durdurur.
  • start: Cihazın yürütülmesini başlatır.
  • status: Sanal cihazın durumunu sorgular. Durum running veya stopped olabilir.
  • name: Sanal cihaz adını sorgular.
avd snapshot {list|save name|load name|delete name} Cihaz durumunu anlık görüntülerde aşağıdaki şekilde kaydeder ve geri yükler:
  • list: Kaydedilen tüm anlık görüntüleri listeler.
  • save name: Anlık görüntüyü name olarak kaydeder.
  • load name: Adlandırılmış anlık görüntüyü yükler.
  • delete name: Adlandırılmış anlık görüntüyü siler.

Aşağıdaki örnekte, firstactivitysnapshot adında bir anlık görüntü kaydedilir:

avd snapshot save firstactivitysnapshot
fold Cihaz katlanabilirse ve şu anda katlanmamış durumdaysa daha küçük ekran yapılandırmasını göstermek için cihazı katlar.
unfold Cihaz katlanabilirse ve şu anda katlanmış durumdaysa daha büyük ekran yapılandırmasını göstermek için cihazı açar.
kill Sanal cihazı sonlandırır.
ping Sanal cihazın çalışıp çalışmadığını kontrol eder.
rotate AVD'yi saat yönünün tersine 45 derecelik artışlarla döndürür.
Emülatörün kilitlenmesi Açıklama
crash Uygulama yürütülürken emülatörün kilitlenmesine neden olur.
crash-on-exit Uygulama çıktığında emülatörün kilitlenmesine neden olur.
Etiketlerde hata ayıklama Açıklama
debug tags ...

Emülatörün belirli bölümlerinden gelen hata ayıklama mesajlarını etkinleştirir veya devre dışı bırakır. tags parametresi, emulator -help-debug-tags komutunu çalıştırdığınızda görünen hata ayıklama etiketleri listesindeki bir değer olmalıdır. -help-debug-tags seçeneği hakkında daha fazla bilgi için sık kullanılan seçenekler tablosuna bakın.

Aşağıdaki örnekte radio etiketi etkinleştirilmektedir:

debug radio
Bağlantı noktası yönlendirme Açıklama
redir list Mevcut bağlantı noktası yönlendirmesini listeler.
redir add protocol:host-port:guest-port Aşağıdaki gibi yeni bir bağlantı noktası yönlendirmesi ekler:
  • protocol: tcp veya udp olmalıdır.
  • host-port: Ana makinede açılacak bağlantı noktası numarası.
  • guest-port: Verilerin emülatörde yönlendirileceği bağlantı noktası numarası.
redir del protocol:host-port Bağlantı noktası yönlendirmesini siler.
  • protocol: tcp veya udp olmalıdır.
  • host-port: Ana makinede açılacak bağlantı noktası numarası.
Coğrafi konum Açıklama

Emülatöre GPS düzeltmesi göndererek emülatörde çalışan uygulamalara bildirilen coğrafi konumu ayarlar.

Sanal cihaz çalışır çalışmaz aşağıdaki geo komutlarından birini verebilirsiniz. Emülatör, sahte bir konum sağlayıcı oluşturarak girdiğiniz konumu ayarlar. Bu sağlayıcı, uygulamalar tarafından ayarlanan konum dinleyicilerine yanıt verir ve konumu LocationManager'ya sağlar. Herhangi bir uygulama, konum yöneticisine sorgu göndererek emüle edilmiş cihazın mevcut GPS düzeltmesini elde edebilir (LocationManager.getLastKnownLocation("gps")) çağrısı yaparak.

geo fix longitude latitude [altitude] [satellites] [velocity] Emülatöre basit bir GPS düzeltmesi gönderir. longitude ve latitude değerlerini ondalık derece olarak belirtin. Konumu belirlemek için kullanılacak satellites sayısını belirtmek üzere 1 ile 12 arasında bir sayı kullanın ve altitude değerini metre, velocity değerini ise knot cinsinden belirtin.
geo nmea sentence NMEA 0183 cümlesini, emüle edilmiş bir GPS modemden gönderilmiş gibi emüle edilmiş cihaza gönderir. sentence ile başlayın. Şu anda yalnızca "$GPGGA" ve "$GPRCM" cümleleri desteklenmektedir. Aşağıdaki örnek, bir GPS alıcısının saat, konum ve düzeltme verilerini alan bir GPGGA (Küresel Konum Belirleme Sistemi Düzeltme Verileri) cümlesidir:
geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx
Sahte donanım etkinlikleri Açıklama
event types Tüm sahte etkinlik türlerini listeler. Kod içeren etkinliklerde kod sayısı sağ taraftaki parantez içinde listelenir.

event types
event <type> can be an integer or one of the following aliases:
    EV_SYN
    EV_KEY    (405 code aliases)
    EV_REL    (2 code aliases)
    EV_ABS    (27 code aliases)
    EV_MSC
    EV_SW     (4 code aliases)
    EV_LED
    EV_SND
    EV_REP
    EV_FF
    EV_PWR
    EV_FF_STATUS
    EV_MAX
OK
        

event send types [types ...] Bir veya daha fazla sahte etkinlik türü gönderiyor.
event codes type Belirtilen sahte etkinlik türü için etkinlik kodlarını listeler.
event send type[:code]:[value] [...] İsteğe bağlı kodlar ve kod değerleriyle bir veya daha fazla sahte etkinlik gönderir.

Tam olarak hangi etkinliğin gönderileceğini öğrenmek için emülatördeki düğmelere manuel olarak basarken adb komutunu kullanabilirsiniz.

Güç düğmesine bastığınızda oluşturulan etkinlikler şunlardır:

adb shell getevent -lt

/dev/input/event12: EV_KEY       KEY_POWER            DOWN
/dev/input/event12: EV_SYN       SYN_REPORT           00000000
/dev/input/event12: EV_KEY       KEY_POWER            UP
/dev/input/event12: EV_SYN       SYN_REPORT           00000000
      
Örneğin, güç düğmesine uzun basma işlemini simüle etmek için keydown ve keyup için iki EV_KEY etkinliği gönderin:
event send EV_KEY:KEY_POWER:0
OK
event send EV_KEY:KEY_POWER:1
OK
      

event text message Tuş basımlarını simüle eden bir karakter dizisi gönderir. Mesaj, UTF-8 dizesi olmalıdır. Unicode gönderileri, mevcut cihaz klavyesine göre ters eşlenir ve desteklenmeyen karakterler sessizce silinir.
Güç durumu kontrolleri Açıklama
power display Pil ve şarj cihazı durumunu gösterir.
power ac {on|off} AC şarj durumunu on veya off olarak ayarlar.
power status {unknown|charging|discharging|not-charging|full} Pil durumunu belirtildiği gibi değiştirir.
power present {true|false} Pil varlığı durumunu ayarlar.
power health {unknown|good|overheat|dead|overvoltage|failure} Pil sağlığı durumunu ayarlar.
power capacity percent Kalan pil kapasitesi durumunu yüzde olarak 0 ile 100 arasında ayarlar.
Ağ bağlantısı durumu
(yalnızca Ethernet ve hücresel)
Açıklama
network status Ağ durumunu, mevcut gecikmeyi ve hız özelliklerini kontrol eder.
network delay latency

Emüle edilen ağ gecikmesini değiştirir.

Emülatör, uygulamanızı gerçek çalışma koşullarına daha uygun bir ortamda test edebilmeniz için çeşitli ağ gecikmesi düzeylerini simüle etmenize olanak tanır. Emülatör başlatılırken bir gecikme düzeyi veya aralığı ayarlayabilir ya da uygulama emülatörde çalışırken gecikmeyi değiştirmek için konsolu kullanabilirsiniz.

latency biçimi aşağıdakilerden biridir (sayılar milisaniye cinsindendir):

Ağ gecikmesi biçimi:

  • gprs: Minimum 150, maksimum 550 gecikme aralığını kullanan GPRS.
  • edge: Minimum 80, maksimum 400 gecikme aralığını kullanan EDGE/EGPRS.
  • umts: En az 35, en fazla 200 gecikme aralığını kullanan UMTS/3G.
  • none: Gecikme yok.
  • num: Belirtilen gecikmeyi milisaniye cinsinden taklit eder.
  • min:max: Belirtilen gecikme aralığını taklit eder.

Emülatör başlatılırken gecikmeyi ayarlamak için önceki Ağ gecikmesi biçimi listesinde belirtildiği gibi desteklenen bir latency değeriyle -netdelay emülatör seçeneğini kullanın. Aşağıda bazı örnekler verilmiştir:

emulator -netdelay gprs
emulator -netdelay 40,100

Emülatör çalışırken ağ gecikmesinde değişiklik yapmak için konsola bağlanın ve önceki Ağ gecikmesi biçimi listesinden desteklenen bir latency değeriyle netdelay komutunu kullanın.

network delay gprs
network delay 40 100
network speed speed Emülatör, çeşitli ağ aktarım hızlarını simüle etmenize olanak tanır.

Emülatör başlatılırken aktarım hızı veya aralığı ayarlayabilir ya da uygulama emülatörde çalışırken hızı değiştirmek için konsolu kullanabilirsiniz.

speed biçimi aşağıdakilerden biridir (sayılar kilobit/sn cinsindendir):

Ağ hızı biçimi:

  • gsm: 14,4 yukarı ve 14,4 aşağı hızını kullanan GSM/CSD.
  • hscsd: 14,4 yukarı ve 43,2 aşağı hızını kullanan HSCSD.
  • gprs: 40,0 yükleme ve 80,0 indirme hızı kullanan GPRS.
  • edge: 118,4 yukarı ve 236,8 aşağı hızını kullanan EDGE/EGPRS.
  • umts: 128, 0 yukarı ve 1.920 aşağı hızını kullanan UMTS/3G.
  • hsdpa: 348, 0 yukarı ve 14.400,0 aşağı hızını kullanan HSDPA.
  • lte: 58.000 yükleme ve 173.000 indirme hızı kullanan LTE.
  • evdo: 75.000 yükleme ve 280.000 indirme hızı kullanan EVDO.
  • full: Sınırsız hız, ancak bilgisayarınızın bağlantı hızına bağlıdır.
  • num: Hem yükleme hem de indirme için kullanılan kilobit/sn cinsinden tam bir hız ayarlar.
  • up:down: Yükleme ve indirme için ayrı ayrı kilobit/sn cinsinden tam hızları ayarlar.

Ağ hızını emülatör başlatılırken ayarlamak için önceki Ağ hızı biçimi listesinde olduğu gibi desteklenen bir speed değeriyle -netspeed emülatör seçeneğini kullanın. Aşağıda bazı örnekler verilmiştir:

emulator -netspeed gsm @Pixel_API_26
emulator -netspeed 14.4,80 @Pixel_API_26

Emülatör çalışırken ağ hızında değişiklik yapmak için konsola bağlanın ve önceki Ağ hızı biçimi listesinden desteklenen bir speed değeriyle network speed komutunu kullanın.

network speed 14.4 80
network capture {start|stop} file Paketleri bir dosyaya gönderir. Aşağıdaki listede parametreler ve parametre değerleri açıklanmaktadır:
  • start file: Belirtilen dosyaya paket göndermeye başlar.
  • stop file: Belirtilen dosyaya paket gönderme işlemini durdurur.
Telefon emülasyonu Açıklama
Android emülatöründe, emülatörde telefon işlevlerini simüle etmenize olanak tanıyan kendi GSM ve CDMA emüle edilmiş modemleri bulunur. Örneğin, GSM ile gelen telefon aramalarını simüle edebilir, veri bağlantıları oluşturup sonlandırabilirsiniz. CDMA'da abonelik kaynağı ve tercih edilen dolaşım listesini siz sağlarsınız. Android sistemi, simüle edilmiş aramaları gerçek aramalar gibi işler. Emülatör, görüşme sesini desteklemiyor.
gsm {call|accept|cancel|busy} phonenumber gsm parametreleri şunlardır:
  • call: phonenumber numaralı telefondan gelen bir aramayı simüle eder.
  • accept: phonenumber adlı kullanıcıdan gelen aramayı kabul eder ve arama durumunu active olarak değiştirir. Bir görüşme durumunu active olarak yalnızca mevcut durumu waiting veya held ise değiştirebilirsiniz.
  • cancel: phonenumber numaralı telefondan gelen veya bu numaraya yapılan telefon görüşmesini sonlandırır.
  • busy: phonenumber adlı kişiye yapılan giden aramayı kapatır ve arama durumunu busy olarak değiştirir. Bir görüşme durumunu busy olarak yalnızca mevcut durumu waiting olduğunda değiştirebilirsiniz.
gsm {data|voice} state data state komutu, GPRS veri bağlantısının durumunu değiştirir. data voice state komutu ise GPRS ses bağlantısının durumunu aşağıdaki gibi değiştirir:
  • unregistered: Ağ kullanılamıyor.
  • home: Yerel ağda, dolaşım yok.
  • roaming: Dolaşım ağında.
  • searching: Ağlar aranıyor.
  • denied: Yalnızca acil durum aramaları.
  • off: unregistered ile aynıdır.
  • on: home ile aynıdır.
gsm hold Bir görüşmenin durumunu hold olarak değiştirir. Bir görüşme durumunu hold olarak yalnızca mevcut durumu active veya waiting olduğunda değiştirebilirsiniz.
gsm list Tüm gelen ve giden aramaları ve durumlarını listeler.
gsm status Mevcut GSM ses/veri durumunu bildirir. Değerler, voice ve data komutları için açıklanan değerlerdir.
gsm signal {rssi|ber} Güncellemenin sonraki 15 saniyesinde bildirilen sinyal gücünü (rssi) ve bit hata oranını (ber) değiştirir. Aşağıdaki listede parametreler ve değerleri açıklanmaktadır:
  • rssi aralığı 0 ile 31 arasındadır ve bilinmeyen için 99'dur.
  • ber aralığı, bilinmeyen için 0 ile 7 ve 99 arasındadır.
gsm signal-profile num Sinyal gücü profilini ayarlar. num, 0 ile 4 arasında bir sayıdır.
cdma ssource source Mevcut CDMA abonelik kaynağını ayarlar. Burada source, CDMA operatörünün abonelerini ve değerlerini içeren ağ tabanlı bir izin verilenler listesidir. Değerler şu şekildedir:
  • nv: Aboneliği kalıcı RAM'den okur.
  • ruim: Aboneliği Çıkarılabilir Kullanıcı Kimliği Modülü'nden (RUIM) okur.
cdma prl_version version Mevcut tercih edilen dolaşım listesi (PRL) sürümünü boşaltır. Sürüm numarası, sistem seçimi ve edinme süreci sırasında kullanılan bilgileri içeren PRL veritabanı içindir.
Emülatördeki sensörleri yönetme Açıklama
Bu komutlar, AVD'de hangi sensörlerin bulunduğunu gösterir. sensor komutunu kullanmanın yanı sıra, Hız ölçer ve Ek sensörler sekmelerindeki Sanal sensörler ekranında emülatördeki ayarları görebilir ve düzenleyebilirsiniz.
sensor status Tüm sensörleri ve durumlarını listeler. Aşağıda sensor status komutunun örnek çıkışı verilmiştir:
sensor get sensor-name sensor-name için ayarları alır. Aşağıdaki örnekte, ivme sensörünün değeri alınır:
sensor get acceleration
acceleration = 2.23517e-07:9.77631:0.812348

İki nokta işaretiyle(:) ayrılmış acceleration değerleri, sanal sensörlerin x, y ve z koordinatlarını ifade eder.

sensor set sensor-name value-x:value-y:value-z sensor-name için değerleri ayarlar. Aşağıdaki örnekte, hızlanma sensörü iki nokta üst üste ile ayrılmış x, y ve z değerlerine ayarlanır.
sensor set acceleration 2.23517e-07:9.77631:0.812348
SMS emülasyonu Açıklama
sms send sender-phone-number textmessage Emüle edilmiş bir gelen SMS oluşturur. Aşağıdaki listede parametreler ve değerleri açıklanmaktadır:
  • sender-phone-number: Rastgele bir sayısal dize içerir.
  • textmessage: SMS mesajı.

Aşağıdaki örnekte, 4085555555 telefon numarasına "merhaba" mesajı gönderilir:

sms send 4085555555 hi there

Konsol, SMS mesajını Android çerçevesine iletir. Bu çerçeve de mesajı, emülatördeki SMS'i işleyen bir uygulamaya (ör. Mesajlar uygulaması) geçirir. 10 rakam iletirseniz uygulama bunu telefon numarası olarak biçimlendirir. Daha uzun veya daha kısa sayısal dizeler, gönderdiğiniz şekilde gösterilir.

Parmak izi simülasyonu Açıklama
finger touch fingerprint-id Sensöre dokunan bir parmağı simüle eder.
finger remove Parmak çıkarma işlemini simüle eder.

Bu komutların nasıl kullanılacağıyla ilgili talimatlar için parmak izi simülasyonu ve doğrulama hakkındaki aşağıdaki bölüme bakın.

Parmak izi simülasyonu ve doğrulaması

Şekil 1. Parmak iziyle kimlik doğrulama ekranı.

Uygulamanız için parmak iziyle kimlik doğrulamayı simüle etmek ve doğrulamak üzere finger komutunu kullanın. SDK Tools 24.3 veya sonraki bir sürüm ve Android 6.0 (API düzeyi 23) ya da sonraki bir sürüm gerekir.

Parmak iziyle kimlik doğrulamayı simüle etmek ve doğrulamak için aşağıdaki adımları uygulayın:

  1. Henüz parmak izi kimliğiniz yoksa Ayarlar > Güvenlik > Parmak izi'ni seçip kayıt talimatlarını uygulayarak emülatörde yeni bir parmak izi kaydedin.
  2. Uygulamanızı parmak iziyle kimlik doğrulama özelliğini kabul edecek şekilde ayarlayın. Bu kurulumu yaptıktan sonra cihazınızda parmak izi kimlik doğrulama ekranı gösterilir.
  3. Uygulamanız parmak iziyle kimlik doğrulama ekranını gösterirken konsola gidin ve finger touch komutunu ve oluşturduğunuz parmak izi kimliğini girin. Bu işlem, parmakla dokunma simülasyonu yapar.
  4. Ardından, parmak kaldırma işlemini simüle etmek için finger remove komutunu girin.

    Uygulamanız, kullanıcı parmağıyla parmak izi sensörüne dokunup parmağını kaldırmış gibi yanıt vermelidir.