Emülatör konsol komutları gönderme

Çalışan her sanal cihaz, emüle edilen 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ı yeniden yönlendirme, ağ özellikleri ve telefon etkinliklerini yönetmek için konsolu kullanabilirsiniz.

Aşağıdaki komutlar için zaten çalışan bir emülatörünüzün olması gerekir. Emülatör çalıştırma hakkında daha fazla bilgi için Android Emülatör'de uygulama çalıştırma ve Emülatörü komut satırından başlatma konularına bakın.

Konsol oturumu başlatma ve durdurma

Konsola erişmek ve bir terminal penceresinden komut girmek için telnet tuşlarını kullanarak konsol bağlantı noktasına bağlanın ve kimlik doğrulama jetonunuzu sağlayın. Konsolda Tamam ifadesi her görüntülendiğinde, komutlar kabul etmeye hazırdır. Tipik bir istem yok.

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

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

    Emülatör pencere başlığı, ayrı bir pencerede çalışırken konsol bağlantı noktası numarasını listeler ancak bir araç penceresinde çalıştırma sırasında listelenmez. Ö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 Cihazlar için sorgulama bölümüne bakın.

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

  3. Konsolda OK gösterildikten sonra auth auth_token komutunu girin.
  4. Konsol komutlarını girebilmeniz için emülatör konsolu kimlik doğrulama gerektirir. 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 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 girin.

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

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
    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, emülatör konsol komutları parametreleri ve değerleriyle birlikte açıklanmaktadır:

Tablo 1. Emülatör konsol komutları

Genel komutlar Açıklama
avd {stop|start|status|name} Sanal cihazı aşağıdaki şekilde 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 durumunu sorgular (running veya stopped olabilir).
  • name: Sanal cihaz adını sorgular.
avd snapshot {list|save name|load name|delete name} Cihaz durumunu aşağıdaki şekilde anlık görüntülere 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ıyla bir anlık görüntü kaydedilir:

avd snapshot save firstactivitysnapshot
fold Cihaz katlanabilir ve o anda açılmışsa daha küçük ekran yapılandırmasını gösterecek şekilde katlanır.
unfold Katlanabilir cihaz ve şu anda katlanmış durumdaysa daha büyük ekran yapılandırmasını görüntülemek 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 45 derecelik artışlarla saat yönünün tersine döndürür.
Emülatörü kilitle Açıklama
crash Uygulama yürütülürken emülatörü kilitler.
crash-on-exit Uygulamadan çıktığında emülatörü kilitler.
Hata ayıklama etiketleri Açıklama
debug tags ...

Emülatörün belirli bölümlerinden hata ayıklama mesajlarını etkinleştirir veya devre dışı bırakır. tags parametresi, emulator -help-debug-tags öğesini yürüttüğünüzde 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ştirilir:

debug radio
Bağlantı noktası yönlendirmesi Açıklama
redir list Geçerli 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ıdır.
  • guest-port: Emülatörde verilerin yönlendirileceği bağlantı noktası numarası.
redir del protocol:host-port Bir bağlantı noktası yönlendirmesini siler.
  • protocol: tcp veya udp olmalıdır.
  • host-port: Ana makinede açılacak bağlantı noktası numarasıdır.
Coğrafi konum Açıklama

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

Sanal cihaz çalışmaya başlar başlamaz aşağıdaki geo komutundan birini gönderebilirsiniz. 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 cihazına sağlar. Tüm uygulamalar LocationManager.getLastKnownLocation("gps") numaralı telefonu arayarak emüle edilen cihazın mevcut GPS sabitlemesini almak için konum yöneticisini sorgulayabilir.

geo fix longitude latitude [altitude] [satellites] [velocity] Emülatöre basit bir GPS düzeltmesi gönderir. longitude ve latitude değerlerini ondalık dereceyle belirtin. Konumu belirlemek amacıyla kullanılacak satellites sayısını belirtmek için 1 ile 12 arasında bir sayı kullanın ve metre cinsinden altitude değerini, düğüm olarak da velocity değerini belirtin.
geo nmea sentence Öykünülen cihaza, emülasyonlu bir GPS modeminden gönderilmiş gibi bir NMEA 0183 cümlesi gönderir. sentence uygulamasını "$GP" ile başlatın. Şu anda yalnızca "$GPGGA" ve "$GPRCM" cümleleri desteklenmektedir. Aşağıdaki örnek, GPS alıcısı için zaman, konum ve düzeltme verilerini alan bir GPGGA (Küresel Konumlandırma 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ğ tarafta 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önderir.
event codes type Belirtilen sahte etkinlik türü için etkinlik kodlarını listeler.
event send type[:code]:[value] [...] İsteğe bağlı kod ve kod değerleriyle birlikte bir veya daha fazla sahte etkinlik gönderir.

Tam olarak hangi etkinliğin gönderileceğini keşfetmek 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 basmayı simüle etmek üzere tuş tuşu ve tuş tuşu 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şları simüle eden bir karakter dizesi gönderir. Bu ileti bir UTF-8 dizesi olmalıdır. Unicode yayınları, cihazın mevcut klavyesine göre ters eşlenir ve desteklenmeyen karakterler sessiz bir şekilde 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 şekilde 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 0 ile 100 arasında bir yüzde değeri olarak ayarlar.
Ağ bağlantısı durumu Açıklama
network status Ağ durumunun yanı sıra mevcut gecikme ve hız özelliklerini kontrol eder.
network delay latency

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

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

latency ağının biçimi aşağıdakilerden biridir (sayılar milisaniyedir):

Ağ gecikmesi biçimi:

  • gprs: Minimum 150 ve maksimum 550 gecikme aralığı kullanan GPRS.
  • edge: Minimum 80 ve maksimum 400 gecikme aralığı kullanan EDGE/EGPRS.
  • umts: UMTS/3G, minimum 35 ve maksimum 200 gecikme aralığı kullanır.
  • none: Gecikme yok.
  • num: Belirtilen gecikmeyi milisaniye cinsinden emüle eder.
  • min:max: Belirtilen gecikme aralığının emülasyonunu yapar.

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 netdelay komutunu önceki Ağ gecikmesi biçimi listesinden desteklenen bir latency değeriyle 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 etmenizi sağlar.

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

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

Ağ hızı biçimi:

  • gsm: GSM/CSD, 14,4 yukarı ve 14,4 aşağı hız kullanır.
  • hscsd: HSCSD, 14,4 yukarı ve 43,2 aşağı hız kullanıyor.
  • gprs: 40,0 yukarı ve 80,0 aşağı hız kullanan GPRS.
  • edge: EDGE/EGPRS, 118,4 artış ve 236,8 aşağı hız kullanır.
  • umts: UMTS/3G, 128,0 yukarı ve 1920 aşağı hız kullanır.
  • hsdpa: 348, 0 yukarı ve 14.400,0 aşağı hız kullanan HSDPA.
  • lte: LTE, 58.000 yukarı ve 173.000 aşağı hız kullanır.
  • evdo: EVDO, 75.000 yukarı ve 280.000 aşağı hız kullanır.
  • 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 kesin bir hız ayarlar.
  • up:down: Ayrı yükleme ve indirme işlemleri için tam hızları kilobit/sn cinsinden ayarlar.

Emülatör başlatılırken ağ hızını 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 network speed komutunu önceki Ağ hızı biçimi listesinden desteklenen bir speed değeriyle 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öndermeyi durdurur.
Telefon emülasyonu Açıklama
Android emülatörü, emülatördeki telefon işlevlerini simüle etmenizi sağlayan kendi GSM ve CDMA emülasyonlu modemlerini içerir. Örneğin, GSM ile gelen telefon aramalarını simüle edebilir ve veri bağlantıları kurup sonlandırabilirsiniz. CDMA ile bir abonelik kaynağı ve tercih edilen dolaşım listesini sağlarsınız. Android sistemi, simüle edilmiş aramaları tıpkı gerçek aramalar gibi işler. Emülatör, arama sesini desteklemiyor.
gsm {call|accept|cancel|busy} phonenumber gsm parametreleri şunlardır:
  • call: phonenumber kaynağından gelen telefon aramasını simüle eder.
  • accept: phonenumber numaralı telefondan gelen aramayı kabul eder ve arama durumunu active olarak değiştirir. Bir çağrının durumunu, yalnızca geçerli durumu waiting veya held olduğunda active olarak değiştirebilirsiniz.
  • cancel: phonenumber gelen veya giden telefon aramasını sonlandırır.
  • busy: phonenumber numaralı telefona yapılan bir giden aramayı kapatır ve arama durumunu busy olarak değiştirir. Çağrının durumunu yalnızca geçerli durumu waiting olduğunda busy olarak değiştirebilirsiniz.
gsm {data|voice} state data state komutu, GPRS veri bağlantısının durumunu, data voice state komutu ise GPRS ses bağlantısının durumunu şu şekilde değiştirir:
  • unregistered: Kullanılabilir ağ yok.
  • home: Yerel ağda, dolaşım dışında.
  • roaming: Dolaşım ağında.
  • searching: Ağlar aranıyor.
  • denied: Yalnızca acil durum aramaları için kullanılır.
  • off: unregistered ile aynıdır.
  • on: home ile aynıdır.
gsm hold Bir çağrının durumunu hold olarak değiştirir. Bir çağrının durumunu, yalnızca geçerli durumu active veya waiting olduğunda hold olarak değiştirebilirsiniz.
gsm list Tüm gelen ve giden aramaları ve bunların durumlarını listeler.
gsm status Geçerli 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-31 ve bilinmiyor için 99'dur.
  • ber aralığı, bilinmiyor için 0-7 ve 99'dur.
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ı belirler. Burada source, CDMA operatörünün abonelerini ve değerlerini aşağıdaki gibi içeren ağ tabanlı bir izin verilenler listesidir:
  • nv: Değişken olmayan RAM'den aboneliği okur.
  • ruim: Çıkarılabilir Kullanıcı Kimlik Modülü'ndeki (RUIM) aboneliği okur.
cdma prl_version version Tercih edilen geçerli dolaşım listesi (PRL) sürümünü atar. Sürüm numarası, sistem seçimi ve edinme sürecinde kullanılan bilgileri içeren PRL veritabanı içindir.
Emülatördeki sensörleri yönet Açıklama
Bu komutlar, ortalama görüntüleme süresinde hangi sensörlerin bulunduğuyla ilgilidir. Ayarları, sensor komutunu kullanmanın yanı sıra İvme ölçer ve Ek sensörler sekmelerindeki Sanal sensörler ekranındaki emülatörde görüp 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 ayarlarını alır. Aşağıdaki örnekte ivme sensörünün değeri elde edilir:
sensor get acceleration
acceleration = 2.23517e-07:9.77631:0.812348

İki nokta üst üste(:) ile ayrılan acceleration değerleri, sanal sensörlerin x, y ve z koordinatlarını belirtir.

sensor set sensor-name value-x:value-y:value-z sensor-name değerlerini ayarlar. Aşağıdaki örnekte ivme sensörü, iki nokta üst üste ile ayrılmış x, y ve z değerlerine ayarlanmaktadır.
sensor set acceleration 2.23517e-07:9.77631:0.812348
SMS emülasyonu Açıklama
sms send sender-phone-number textmessage Gelen SMS emülasyonu 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önderilmektedir:

sms send 4085555555 hi there

Konsol, SMS mesajını Android çerçevesine yönlendirir ve bu çerçeve, mesajı emülatörde SMS işleyen bir uygulamaya (ör. Mesajlar uygulaması) iletir. 10 numara aktarırsanız uygulama bunu telefon numarası olarak biçimlendirir. Daha uzun veya daha kısa sayısal dizeler, bunları gönderdiğiniz şekilde gösterir.

Parmak izi simülasyonu Açıklama
finger touch fingerprint-id Sensöre dokunan bir parmağı simüle eder.
finger remove Parmakla kaldırma simülasyonu sağlar.

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

Parmak izi simülasyonu ve doğrulaması

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

Uygulamanız için parmak izi kimlik doğrulamasını simüle etmek ve doğrulamak amacıyla finger komutunu kullanın. SDK Araçları 24.3 veya sonraki sürümler ile Android 6.0 (API düzeyi 23) veya sonraki sürümler gerekir.

Parmak izi kimlik doğrulamasını simüle etmek ve doğrulamak için aşağıdaki adımları izleyin:

  1. Parmak izi kimliğiniz yoksa Ayarlar > Güvenlik > Parmak izi'ni seçip kayıt talimatlarını uygulayarak emülatöre yeni bir parmak izi kaydedin.
  2. Uygulamanızı parmak iziyle kimlik doğrulamayı kabul edecek şekilde ayarlayın. Bu kurulumu gerçekleştirdikten sonra, cihazınızda parmak izi kimlik doğrulama ekranı görüntülenir.
  3. Uygulamanızda parmak izi kimlik doğrulama ekranı gösterilirken konsola gidip finger touch komutunu ve oluşturduğunuz parmak izi kimliğini girin. Bu işlem, parmakla dokunmayı simüle eder.
  4. Ardından, parmakla kaldırma simülasyonu için finger remove komutunu girin.

    Uygulamanız, bir kullanıcı parmağını parmak izi sensöründen çıkarıp dokunmuş gibi yanıt vermelidir.