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ı yönlendirmesini, ağ özelliklerini ve telefon etkinliklerini yönetmek için konsolu kullanabilirsiniz.

Aşağıdaki komutlar için halihazırda bir emülatörünüzün çalışması 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 bölümlerine göz atın.

Konsol oturumu başlatma ve durdurma

Konsola erişmek ve bir terminal penceresinden komut girmek için konsol bağlantı noktasına bağlanmak ve kimlik doğrulama jetonunuzu sağlamak üzere telnet öğesini kullanın. Konsolda Tamam her görüntülendiğinde, komutlar kabul edilmeye hazır olur. 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 penceresi başlığında konsol bağlantı noktası numarası ayrı bir pencerede çalıştırılırken listelenir ancak araç penceresinde çalıştırılırken listelenmez. Örneğin, konsol bağlantı noktası 5554'ü kullanan bir emülatörün pencere başlığı Nexus_5X_API_23:5554 olabilir. Ayrıca adb devices komutu, çalışan sanal cihazların listesini ve bunların konsol bağlantı noktası numaralarını da yazdırır. Daha fazla bilgi edinmek için Cihazları sorgulama bölümünü inceleyin.

    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ğrulaması 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 jetonunu içeren dosyayı oluşturur. Kimlik doğrulamayı devre dışı bırakmak için jetonu .emulator_console_auth_token dosyasından silin veya jeton 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 girin.

Örnek bir oturum aşağıda 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

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 konsolu 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. Bu durum 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: Kayıtlı 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 Katlanabilir durumda ve açık durumda değilse cihazı daha küçük ekran yapılandırmasını görüntülemek için katlar.
unfold Katlanabilir durumda ve katlanmış durumda olan cihazı açarak daha büyük ekran yapılandırmasını görüntüler.
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ü kilitle Açıklama
crash Uygulama yürütülürken emülatörü kilitler.
crash-on-exit Uygulama çı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 uygulamasını 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ştirilmiştir:

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 şekilde 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: Emülatörde verilerin 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 bir GPS bağlantısı göndererek, bir emülatör içinde çalışan uygulamalara bildirilen coğrafi konumu ayarlar.

Sanal cihaz çalışırken aşağıdaki geo komutlarından birini hemen yayınlayabilirsiniz. Emülatör, bir sahte 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 özelliğine sağlar. Herhangi bir uygulama, LocationManager.getLastKnownLocation("gps") çağrısı yaparak emüle edilen cihazın mevcut GPS bağlantısını almak için konum yöneticisini sorgulayabilir.

geo fix longitude latitude [altitude] [satellites] [velocity] Emülatöre basit bir GPS bağlantısı gönderir. longitude ve latitude değerlerini ondalık derece cinsinden belirtin. Konumu belirlemek için kullanılacak satellites sayısını belirtmek için 1 ile 12 arasında bir sayı kullanın ve altitude değerini metre, velocity değerini de knot olarak belirtin.
geo nmea sentence Öykünülen cihaza bir NMEA 0183 cümlesini, emüle edilmiş bir GPS modeminden gönderilmiş gibi gönderir. sentence için "$GP" yazın. Şu anda yalnızca "$GPGGA" ve "$GPRCM" cümleleri desteklenmektedir. Aşağıdaki örnek, bir GPS alıcısı için zaman, konum ve düzeltme verilerini alan bir GPGGA (Küresel Konumlandırma Sistemi Verileri Düzeltme) 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ğda 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ı kodlar ve kod değerleri içeren 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 etkinliklerdir:

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, 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şlara basmaları simüle eden bir karakter dizesi gönderir. İleti bir UTF-8 dizesi olmalıdır. Unicode yayınları, mevcut cihaz klavyesine göre ters eşleştirilir ve desteklenmeyen karakterler sessizce silinir.
Güç durumu denetimleri Açıklama
power display Pil ve şarj cihazının 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ığını ayarlar.
power capacity percent Kalan pil kapasitesi durumunu 0 ile 100 arasında bir yüzde olarak ayarlar.
Ağ bağlantısı durumu Açıklama
network status Ağ durumunu, 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ğ gecikme düzeylerini simüle etmenizi sağlar. Böylece uygulamanızı gerçek çalışma koşullarının daha tipik olduğu bir ortamda test edebilirsiniz. Emülatör başlatılırken bir gecikme düzeyi veya aralık ayarlayabilir ya da uygulama emülatörde çalışırken gecikmeyi değiştirmek için konsolu kullanabilirsiniz.

latency ağının biçimi şunlardan 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: Minimum 35 ve maksimum 200 gecikme aralığı kullanan UMTS/3G.
  • none: Gecikme yok.
  • num: Milisaniye cinsinden belirtilen gecikmenin emülasyonunu yapar.
  • min:max: Belirtilen gecikme aralığının emülasyonunu yapar.

Emülatör başlangıcında gecikme ayarlamak için önceki Ağ gecikmesi biçimi listesinde gösterildiği gibi, desteklenen bir latency değerine sahip -netdelay emülatör seçeneğini kullanın. Bazı örnekler:

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 listesinde yer alan 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 bir aktarım hızı veya aralık ayarlayabilir ya da uygulama emülatörde çalışırken hızı değiştirmek için konsolu kullanabilirsiniz.

speed ağının biçimi şunlardan biridir (sayılar kilobit/sn).

Ağ hızı biçimi:

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

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 listesinde yer alan 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ö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, veri bağlantıları kurup sonlandırabilirsiniz. CDMA ile bir abonelik kaynağı ve tercih edilen dolaşım listesi sağlarsınız. Android sistemi, simüle edilen aramaları tıpkı gerçek çağrılar gibi işler. Emülatör, arama sesini desteklemez.
gsm {call|accept|cancel|busy} phonenumber gsm parametreleri aşağıdaki gibidir:
  • call: phonenumber kaynağından gelen telefon aramasını simüle eder.
  • accept: phonenumber tarafından gelen aramayı kabul eder ve arama durumunu active olarak değiştirir. Bir çağrı durumunu yalnızca geçerli durumu waiting veya held olduğunda active olarak değiştirebilirsiniz.
  • cancel: phonenumber numaralı telefondan gelen veya giden telefon aramasını sonlandırır.
  • busy: phonenumber numaralı telefona yapılan giden aramayı kapatır ve çağrı durumunu busy olarak değiştirir. Bir çağrı 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 sesli bağlantısının durumunu aşağıdaki gibi değiştirir:
  • unregistered: Kullanılabilir ağ yok.
  • home: Yerel ağda, dolaşım dışında.
  • roaming: Dolaşım ağında.
  • searching: Ağ arama.
  • denied: Yalnızca acil durum aramaları.
  • off: unregistered ile aynıdır.
  • on: home ile aynıdır.
gsm hold Bir aramanın durumunu hold olarak değiştirir. Bir çağrı 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çıklananlardır.
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 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 bu abonelerin değerlerini içeren ağ tabanlı bir izin verilenler listesidir. Örneğin:
  • nv: Aboneliği sabit olmayan RAM'den okur.
  • ruim: Çıkarılabilir Kullanıcı Kimlik Modülü'nden (RUIM) aboneliği okur.
cdma prl_version version Tercih edilen mevcut dolaşım listesi (PRL) sürümünün dökümünü alır. 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. Emülatördeki ayarları, sensor komutunu kullanmanın yanı sıra İvme ölçer ve Ek sensörler sekmelerindeki Sanal sensörler ekranında görüp düzenleyebilirsiniz.
sensor status Tüm sensörleri ve durumlarını listeler. Aşağıda, sensor status komutu için ö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 üst üste(:) ile ayrılan 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 değerlerini ayarlar. Aşağıdaki örnekte ivme sensörü iki nokta 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 Emüle edilmiş bir gelen SMS oluşturur. Aşağıdaki listede parametreler ve bunların 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. Bu çerçeve, mesajı SMS işleyen bir emülatörde (ör. Mesajlar uygulaması) bir uygulamaya iletir. 10 numara iletirseniz uygulama bunu telefon numarası olarak biçimlendirir. Daha uzun veya daha kısa sayısal dizeler, bunları ne şekilde gönderdiğinizi gösterir.

Parmak izi simülasyonu Açıklama
finger touch fingerprint-id Bir parmağın sensöre dokunmasını simüle eder.
finger remove Parmak kaldırma işlemini simüle eder.

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

Parmak izi simülasyonu ve doğrulama

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

Uygulamanızda parmak izi kimlik doğrulamasını simüle etmek ve doğrulamak için 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ümlere ihtiyacınız vardır.

Parmak iziyle kimlik doğrulama simülasyonu yapmak ve doğrulamak için şu 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öre yeni bir parmak izi kaydedin.
  2. Uygulamanızı parmak iziyle kimlik doğrulama'yı 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ız parmak izi kimlik doğrulama ekranını görüntülerken konsola gidip finger touch komutunu ve oluşturduğunuz parmak izi kimliğini girin. Bu özellik, parmakla dokunmayı simüle eder.
  4. Ardından, parmak kaldırma işlemini simüle etmek için finger remove komutunu girin.

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