MonkeyDevice

Class monkeyrunner yang menunjukkan perangkat atau emulator yang dapat diakses oleh workstation yang menjalankan monkeyrunner.

Class ini digunakan untuk mengontrol perangkat Android atau emulator. Metode ini mengirim peristiwa UI, mengambil informasi, menginstal dan menghapus aplikasi, serta menjalankan aplikasi.

Biasanya, Anda tidak perlu membuat instance MonkeyDevice. Sebagai gantinya, Anda akan menggunakan MonkeyRunner.waitForConnection() untuk membuat objek baru dari koneksi ke perangkat atau emulator. Misalnya, sebagai ganti menggunakan:

newdevice = MonkeyDevice()

Anda akan menggunakan:

newdevice = MonkeyRunner.waitForConnection()

Ringkasan

Konstanta
string DOWN Gunakan ini dengan argumen type dari press() atau touch() untuk mengirim peristiwa DOWN.
string UP Gunakan ini dengan argumen type dari press() atau touch() untuk mengirim peristiwa UP.
string DOWN_AND_UP Gunakan ini dengan argumen type dari press() atau touch() untuk mengirim peristiwa DOWN yang langsung diikuti dengan peristiwa UP.
Metode
void broadcastIntent (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
Menyiarkan Intent ke perangkat ini, seolah-olah Intent tersebut berasal dari aplikasi.
void drag (tuple start, tuple end, float duration, integer steps)
Menyimulasikan gestur tarik (sentuh, tahan, dan pindah) pada layar perangkat ini.
object getProperty (string key)
Nama variabel lingkungan sistem, menampilkan nilainya untuk perangkat ini. Nama-nama variabel yang tersedia tercantum dalam deskripsi mendetail metode ini.
object getSystemProperty (string key)
. API yang setara dengan adb shell getprop <key>. This is provided for use by platform developers.
void installPackage (string path)
Menginstal aplikasi Android atau paket pengujian yang dimuat di dalam packageFile ke perangkat ini. Jika aplikasi atau paket pengujian sudah terinstal, file tersebut akan ditimpa.
dictionary instrument (string className, dictionary args)
Menjalankan komponen yang ditentukan dalam instrumentasi Android, dan menampilkan hasilnya dalam kamus yang format pastinya ditentukan oleh komponen yang sedang dijalankan. Komponen tersebut harus sudah tersedia di perangkat ini.
void press (string name, dictionary type)
Mengirim peristiwa tombol yang ditentukan oleh jenis ke tombol yang ditentukan oleh kode tombol.
void reboot (string into)
Me-reboot perangkat ini ke bootloader yang ditentukan oleh bootloadType.
void removePackage (string package)
Menghapus paket yang ditentukan dari perangkat ini, termasuk data dan cache-nya.
object shell (string cmd)
Menjalankan perintah shell adb dan menampilkan hasilnya, jika ada.
void startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)
Memulai sebuah Aktivitas di perangkat ini dengan mengirimkan Intent yang dibuat dari argumen yang disediakan.
MonkeyImage takeSnapshot()
Menangkap seluruh buffer layar perangkat ini, menghasilkan objek MonkeyImage yang berisi screenshot dari tampilan saat ini.
void touch (integer x, integer y, integer type)
Mengirim peristiwa sentuh yang ditentukan berdasarkan jenis ke lokasi layar yang ditentukan oleh x dan y.
void type (string message)
Mengirim karakter yang termuat dalam pesan ke perangkat ini, seolah-olah karakter tersebut telah diketik di keyboard perangkat. Ini sama dengan memanggil press() untuk setiap kode tombol dalam message yang menggunakan jenis peristiwa tombol DOWN_AND_UP.
void wake ()
Mengaktifkan layar perangkat ini.

Konstanta

string DOWN

Nilai press() atau touch(). Menentukan bahwa jenis peristiwa DOWN harus dikirim ke perangkat, yang terkait dengan menekan tombol atau menyentuh layar.

string UP

Nilai press() atau touch(). Menentukan bahwa jenis peristiwa UP harus dikirim ke perangkat, yang terkait dengan melepas tombol atau mengangkat jari dari layar.

string DOWN_AND_UP

Nilai press(), touch(), atau type(). Menentukan bahwa jenis peristiwa DOWN yang diikuti oleh jenis peristiwa UP harus dikirim ke perangkat, yang terkait dengan mengetik tombol atau mengklik layar.

Metode publik

void broadcastIntent ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)

Menyiarkan Intent ke perangkat ini, seolah-olah Intent tersebut berasal dari aplikasi. Lihat Intent untuk informasi selengkapnya tentang argumen.

Argumen
uri URI untuk Intent. (lihat Intent.setData()).
action Tindakan untuk Intent ini (lihat Intent.setAction()).
data URI data untuk Intent ini (lihat Intent.setData()).
mimetype Jenis MIME untuk Intent ini (lihat Intent.setType()).
categories Struktur data iterable yang berisi string yang menentukan kategori untuk Intent ini (lihat Intent.addCategory()).
extras Kamus data tambahan untuk Intent ini (lihat Intent.putExtra() untuk contoh).

Kunci untuk setiap item kamus harus berupa string. Nilai item dapat berupa jenis data sederhana atau terstruktur.

component Komponen untuk Intent ini (lihat ComponentName). Menggunakan argumen ini akan mengarahkan Intent ke class tertentu dalam paket Android tertentu.
flags Struktur data iterable yang berisi flag yang mengontrol cara penanganan Intent (lihat Intent.setFlags()).

void drag ( tuple start, tuple end, float duration, integer steps)

Menyimulasikan gestur tarik (sentuh, tahan, dan pindah) pada layar perangkat ini.

Argumen
start Titik awal gestur tarik, dalam bentuk tuple (x,y), dengan x dan y adalah integer.
end Titik akhir gestur tarik, dalam bentuk tuple (x,y), dengan x dan y adalah integer.
durasi Durasi gestur tarik dalam hitungan detik. Defaultnya adalah 1 detik.
steps Jumlah langkah yang harus diambil saat menambah titik. Defaultnya adalah 10.

object getProperty (string key)

Nama variabel lingkungan sistem, menampilkan nilainya untuk perangkat ini.

Argumen
key Nama variabel lingkungan sistem. Nama-nama variabel yang tersedia tercantum dalam Tabel 1. Nama variabel properti di akhir topik ini.
Hasil
  • Nilai variabel. Format data bervariasi sesuai dengan variabel yang diminta.

object getSystemProperty (string key)

Sinonim untuk getProperty().

Argumen
key Nama variabel lingkungan sistem. Nama-nama variabel yang tersedia tercantum dalam Tabel 1. Nama Variabel Properti.
Hasil
  • Nilai variabel. Format data bervariasi sesuai dengan variabel yang diminta.

void installPackage (string path)

Menginstal aplikasi Android atau paket pengujian yang dimuat di dalam packageFile ke perangkat ini. Jika aplikasi atau paket pengujian sudah terinstal, file tersebut akan ditimpa.

Argumen
path Jalur dan nama file yang sepenuhnya memenuhi syarat untuk file .apk yang akan diinstal.

dictionary instrument ( string className, dictionary args)

Menjalankan komponen yang ditentukan dengan instrumentasi Android, dan menampilkan hasilnya dalam kamus yang format pastinya ditentukan oleh komponen yang sedang dijalankan. Komponen tersebut harus sudah tersedia di perangkat ini.

Gunakan metode ini untuk memulai kasus pengujian yang menggunakan salah satu class kasus pengujian Android. Lihat Dasar-Dasar Pengujian untuk mempelajari lebih lanjut pengujian unit dengan framework pengujian Android.

Argumen
className Nama komponen Android yang sudah terinstal di perangkat ini, dalam packagename/classname format standar, dengan packagename adalah nama paket Android dari file .apk di perangkat ini, dan classname adalah nama class dari komponen Android (Activity, ContentProvider, Service, atau BroadcastReceiver) dalam file tersebut. Baik packagename dan classname harus sepenuhnya memenuhi syarat. Lihat ComponentName untuk detail selengkapnya.
args Kamus yang berisi flag dan nilainya. Nilai tersebut akan diteruskan ke komponen saat dimulai. Jika flag ini tidak mengambil nilai, setel nilai kamusnya ke string yang kosong.
Hasil
  • Kamus berisi output komponen. Konten kamus ditentukan oleh komponen itu sendiri.

    Jika Anda menggunakan InstrumentationTestRunner sebagai nama class dalam argumen componentName, kamus hasil akan berisi kunci "stream" tunggal. Nilai "stream" adalah string yang berisi output pengujian, seolah-olah InstrumentationTestRunner dijalankan dari command line. Format output ini dijelaskan dalam Pengujian di IDE Lainnya.

void press (string name, integer type)

Mengirim peristiwa tombol yang ditentukan oleh type ke tombol yang ditentukan oleh keycode.

Argumen
name Nama kode tombol yang akan dikirim. Lihat KeyEvent untuk mengetahui daftar nama kode tombol. Gunakan nama kode tombol, bukan nilai integernya.
type Jenis peristiwa tombol yang akan dikirim. Nilai yang diizinkan adalah DOWN, UP, dan DOWN_AND_UP.

void reboot (string bootloadType)

Me-reboot perangkat ini ke bootloader yang ditentukan oleh bootloadType.

Argumen
into Jenis bootloader untuk reboot. Nilai yang diizinkan adalah "bootloader", "recovery", atau "None".

void removePackage (string package)

Menghapus paket yang ditentukan dari perangkat ini, termasuk data dan cache-nya.

Argumen
package Nama paket Android dari file .apk di perangkat ini.

object shell (string cmd)

Menjalankan perintah shell adb dan menampilkan hasilnya, jika ada.

Argumen
cmd Perintah yang akan dijalankan di shell adb. Bentuk perintah ini dijelaskan dalam topik Android Debug Bridge.
Hasil
  • Hasil perintah, jika ada. Format hasil ditentukan oleh perintah.

void startActivity ( string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)

Memulai sebuah Aktivitas di perangkat ini dengan mengirimkan Intent yang dibuat dari argumen yang disediakan.

Argumen
uri URI untuk Intent. (lihat Intent.setData()).
action Tindakan untuk Intent ini (lihat Intent.setAction()).
data URI data untuk Intent ini (lihat Intent.setData()).
mimetype Jenis MIME untuk Intent ini (lihat Intent.setType()).
categories Struktur data iterable yang berisi string yang menentukan kategori untuk Intent ini (lihat Intent.addCategory()).
extras Kamus data tambahan untuk Intent ini (lihat Intent.putExtra() untuk contoh).

Kunci untuk setiap item kamus harus berupa string. Nilai item dapat berupa jenis data sederhana atau terstruktur.

component Komponen untuk Intent ini (lihat ComponentName). Menggunakan argumen ini akan mengarahkan Intent ke class tertentu dalam paket Android tertentu.
flags Struktur data iterable yang berisi flag yang mengontrol cara penanganan Intent (lihat Intent.setFlags()).

MonkeyImage takeSnapshot ()

Menangkap seluruh buffer layar perangkat ini, yang menghasilkan screenshot dari tampilan saat ini.

Hasil

void touch ( integer x, integer y, string type)

Mengirim peristiwa sentuh yang ditentukan berdasarkan jenis ke lokasi layar yang ditentukan oleh x dan y.

Argumen
x Posisi horizontal sentuhan pada piksel perangkat sebenarnya, mulai dari sisi kiri layar dalam orientasi saat ini.
y Posisi vertikal sentuhan pada piksel perangkat sebenarnya, mulai dari sisi atas layar dalam orientasi saat ini.
type Jenis peristiwa tombol yang akan dikirim. Nilai yang diizinkan adalah DOWN, UP, dan DOWN_AND_UP.

void type (string message)

Mengirim karakter yang termuat dalam pesan ke perangkat ini, seolah-olah karakter tersebut telah diketik di keyboard perangkat. Ini sama dengan memanggil press() untuk setiap kode tombol dalam message yang menggunakan jenis peristiwa tombol DOWN_AND_UP.

Argumen
message String berisi karakter yang akan dikirim.

void wake ()

Mengaktifkan layar perangkat ini.


Lampiran

Tabel 1.Nama variabel properti yang digunakan dengan getProperty() dan getSystemProperty().

Grup Properti Properti Deskripsi Catatan
build board Nama kode untuk board sistem perangkat Lihat Build
brand Operator atau penyedia yang OS-nya disesuaikan.
device Nama desain perangkat.
fingerprint ID unik untuk build yang sedang berjalan.
host
ID Nomor atau label changelist.
model Nama perangkat yang bisa dilihat oleh pengguna akhir.
product Nama produk secara keseluruhan.
tags Tag yang dipisahkan koma yang menjelaskan build, seperti "unsigned" dan "debug".
type Jenis build, seperti "user" atau "eng".
user
CPU_ABI Nama set petunjuk kode native, dalam bentuk jenis CPU plus konvensi ABI.
manufacturer Produsen produk/hardware.
version.incremental Kode internal yang digunakan oleh sistem kontrol sumber untuk mewakili versi software.
version.release Nama versi software yang dapat dilihat oleh pengguna.
version.sdk Versi SDK yang berhubungan dengan versi OS yang dapat dilihat oleh pengguna.
version.codename Namakode pengembangan saat ini, atau "REL" jika versi software telah dirilis.
display width Lebar tampilan perangkat dalam piksel. Untuk lebih detailnya, lihat DisplayMetrics.
height Tinggi tampilan perangkat dalam piksel.
density Kepadatan logis tampilan. Ini adalah faktor yang menskalakan unit DIP (Piksel Kepadatan Mandiri) ke resolusi perangkat. DIP disesuaikan, sehingga 1 DIP setara dengan satu piksel pada layar 160 piksel per inci. Misalnya, pada layar 160 dpi, kepadatan = 1,0, sedangkan pada layar 120 dpi, kepadatan = 0,75.

Nilai ini tidak mengikuti secara pasti ukuran layar sebenarnya, tetapi disesuaikan agar sesuai dengan perubahan besar pada DPI tampilan. Untuk detail selengkapnya, lihat density.

am.current package Nama paket Android dari paket yang sedang berjalan. Kunci am.current menampilkan informasi tentang Aktivitas yang sedang berjalan.
action Tindakan aktivitas saat ini. Action memiliki format yang sama dengan atribut name dari elemen action dalam manifes paket.
comp.class Nama class komponen yang memulai Aktivitas saat ini. Untuk detail selengkapnya, lihat comp.package.
comp.package Nama paket komponen yang memulai Aktivitas saat ini. Komponen yang ditentukan oleh nama paket dan nama class dalam paket.
data Data (jika ada) yang dimuat dalam Intent yang memulai Aktivitas saat ini.
categories Kategori yang ditentukan oleh Intent yang memulai Aktivitas saat ini.
clock realtime Jumlah milidetik sejak perangkat di-reboot, termasuk waktu tidur (deep sleep). Lihat SystemClock untuk informasi selengkapnya.
uptime Jumlah milidetik sejak perangkat di-reboot, tidak termasuk waktu tidur (deep sleep)
millis waktu saat ini sejak epoch UNIX, dalam milidetik.