MonkeyDevice

Una clase de monkeyrunner que representa un dispositivo o emulador al que se puede acceder desde la estación de trabajo que ejecuta monkeyrunner.

Esta clase se usa para controlar un dispositivo o emulador de Android. Los métodos envían eventos de IU, recuperan información, instalan y quitan aplicaciones, y ejecutan aplicaciones.

Por lo general, no es necesario crear una instancia de MonkeyDevice. En su lugar, debes usar MonkeyRunner.waitForConnection() para crear un objeto nuevo desde una conexión a un dispositivo o emulador. Por ejemplo, en lugar de usar lo siguiente:

    newdevice = MonkeyDevice()
    

usa esto:

    newdevice = MonkeyRunner.waitForConnection()
    

Resumen

Constantes
string DOWN Usa esto con el argumento type de press() o touch() para enviar un evento DOWN.
string UP Usa esto con el argumento type de press() o touch() para enviar un evento UP.
string DOWN_AND_UP Usa esto con el argumento type de press() o touch() para enviar un evento DOWN de inmediato seguido de un evento UP.
Métodos
void broadcastIntent (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)
Transmite una instancia de Intent al dispositivo, como si la instancia de Intent proviniera de una aplicación.
void drag (tuple start, tuple end, float duration, integer steps)
Simula un gesto de arrastre (mantener presionado y mover) en la pantalla del dispositivo.
object getProperty (string key)
Según el nombre proporcionado de una variable de entorno del sistema, muestra el valor correspondiente al dispositivo. Los nombres de variables disponibles se muestran en la descripción detallada de este método.
object getSystemProperty (string key)
El equivalente de la API de adb shell getprop <key>. This is provided for use by platform developers.
void installPackage (string path)
Instala en este dispositivo la aplicación de Android o el paquete de prueba contenido en packageFile. Si ya están instalados la aplicación o el paquete de prueba, se reemplazarán.
dictionary instrument (string className, dictionary args)
Ejecuta el componente especificado según la instrumentación de Android y muestra los resultados en un diccionario cuyo formato exacto está indicado por el componente que se ejecuta. El componente ya debe estar presente en el dispositivo.
void press (string name, dictionary type)
Envía el evento de clave especificado por tipo a la clave especificada por el código de clave.
void reboot (string into)
Reinicia el dispositivo en el bootloader especificado por bootloadType.
void removePackage (string package)
Borra el paquete especificado de este dispositivo, incluidos los datos y la caché.
object shell (string cmd)
Ejecuta un comando shell adb y muestra el resultado, si corresponde.
void startActivity (string uri, string action, string data,string mimetype, iterable categories dictionary extras, component component, flags)
Inicia una actividad en este dispositivo mediante el envío de una instancia de Intent desarrollada a partir de los argumentos proporcionados.
MonkeyImage takeSnapshot ()
Captura el búfer de la pantalla completa del dispositivo, y da paso al objeto MonkeyImage que contiene una captura de pantalla de la pantalla actual.
void touch (integer x, integer y, integer type)
Envía un evento de entrada táctil, especificado por tipo, a la ubicación de la pantalla especificada por "x" e "y".
void type (string message)
Envía los caracteres contenidos en el mensaje a este dispositivo, como si se hubieran ingresado desde el teclado del dispositivo. Esto es equivalente a llamar a press() para cada código de clave en message mediante el tipo de evento de clave DOWN_AND_UP.
void wake ()
Activa la pantalla del dispositivo.

Constantes

string DOWN

Es un valor press() o touch(). Especifica que se debe enviar un tipo de evento DOWN al dispositivo, que corresponde a presionar una tecla o tocar la pantalla.

string UP

Es un valor press() o touch(). Especifica que se debe enviar un tipo de evento UP al dispositivo, que corresponde a soltar una tecla o levantar el dedo de la pantalla.

string DOWN_AND_UP

Valor press(), touch() o type(). Especifica que se debe enviar un tipo de evento DOWN seguido de un tipo de evento UP al dispositivo, que corresponde a presionar una tecla o hacer clic en la pantalla.

Métodos públicos

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

Transmite una instancia de Intent al dispositivo, como si la instancia de Intent proviniera de una aplicación. Consulta Intent para obtener más información sobre los argumentos.

Argumentos
uri Es el URI de la instancia de Intent (consulta Intent.setData()).
action Es la acción de esta instancia de Intent (consulta Intent.setAction()).
data Es el URI de datos de esta instancia (consulta Intent.setData()).
mimetype Es el tipo de MIME de la instancia de Intent (consulta Intent.setType()).
categories Estructura de datos iterable que contiene strings que definen categorías para esta instancia de Intent (consulta Intent.addCategory()).
extras Es el diccionario de datos adicionales para esta instancia de Intent (consulta Intent.putExtra() para ver un ejemplo).

La clave para cada elemento del diccionario debe ser una string. El valor del elemento puede ser cualquier tipo de datos simples o estructurados.

component Es el componente de esta instancia de Intent (consulta ComponentName). El uso de este argumento dirigirá la instancia de Intent a una clase específica dentro de un paquete específico de Android.
flags Es la estructura de datos iterables que contiene marcas que controlan cómo se maneja la instancia de Intent (consulta Intent.setFlags()).

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

Simula un gesto de arrastre (mantener presionado y mover) en la pantalla del dispositivo.

Argumentos
start Es el punto de partida del gesto de arrastre, en formato de tuple (x,y), donde "x" e "y" son integers.
end Es el punto final del gesto de arrastre, en formato de tuple (x,y), donde "x" e "y" son integers.
duration Es la duración del gesto de arrastre en segundos. El valor predeterminado es 1.0 segundos.
steps Es el número de pasos para seguir cuando se interpolan puntos. El valor predeterminado es 10.

object getProperty (string key)

Según el nombre proporcionado de una variable de entorno del sistema, muestra el valor correspondiente al dispositivo.

Argumentos
key Es el nombre de la variable de entorno del sistema. Los nombres de las variables disponibles se muestran en la Tabla 1: Nombres de variables de propiedades al final de este tema.
Resultado que se muestra
  • Se muestra el valor de la variable. El formato de los datos varía según la variable solicitada.

object getSystemProperty (string key)

Es un sinónimo de getProperty().

Argumentos
key Es el nombre de la variable de entorno del sistema. Los nombres de las variables disponibles se muestran en la Tabla 1: Nombres de variables de propiedades.
Resultado que se muestra
  • Se muestra el valor de la variable. El formato de los datos varía según la variable solicitada.

void installPackage (string path)

Instala en este dispositivo la aplicación de Android o el paquete de prueba contenido en packageFile. Si ya están instalados la aplicación o el paquete de prueba, se reemplazarán.

Argumentos
path Es la ruta de acceso y nombre de archivo completos del archivo .apk para instalar.

dictionary instrument (string className, dictionary args)

Ejecuta el componente especificado según la instrumentación de Android y muestra los resultados en un diccionario cuyo formato exacto está indicado por el componente que se ejecuta. El componente ya debe estar presente en el dispositivo.

Utiliza este método para iniciar un caso de prueba que use una de las clases de casos de prueba de Android. Consulta Fundamentos de prueba para obtener más información sobre la prueba de unidades con el marco de trabajo de pruebas de Android.

Argumentos
className Es el nombre de un componente de Android que ya está instalado en este dispositivo, con el formato estándar packagename/classname, donde packagename es el nombre del paquete de Android de un archivo .apk en el dispositivo, y classname es el nombre de clase de un componente de Android (Activity, ContentProvider, Service o BroadcastReceiver) en ese archivo. Tanto packagename como classname deben ser nombres completos. Consulta ComponentName para obtener más información.
args Es un diccionario que contiene marcas y sus valores. Estos se pasan al componente cuando se inicia. Si la marca no toma un valor, configura el valor de diccionario en una string vacía.
Resultado que se muestra
  • Se muestra diccionario que contiene la salida del componente. El contenido del diccionario está definido por el componente.

    Si usas InstrumentationTestRunner como nombre de la clase en el argumento componentName, el diccionario resultante contendrá la clave única "stream". El valor de "stream" es una string que contiene la salida de la prueba, como si se hubiera ejecutado InstrumentationTestRunner desde la línea de comandos. El formato de este resultado se describe en Pruebas en otros IDE.

void press (string name, integer type)

Envía el evento de clave especificado por type a la clave especificada por keycode.

Argumentos
name Es el nombre del código de clave que se enviará. Consulta KeyEvent para obtener una lista de nombres de códigos de clave. Usa el nombre del código de clave, no el valor entero.
type Es el tipo de evento de clave que se enviará. Los valores permitidos son DOWN, UP y DOWN_AND_UP.

voidreboot (string bootloadType)

Reinicia el dispositivo en el bootloader especificado por bootloadType.

Argumentos
into Es el tipo de bootloader en el que se reiniciará. Los valores permitidos son "bootloader", "recovery" o "None".

void removePackage (string package)

Borra el paquete especificado de este dispositivo, incluidos los datos y la caché.

Argumentos
package Es el nombre del paquete de Android de un archivo .apk de este dispositivo.

object shell (string cmd)

Ejecuta un comando shell adb y muestra el resultado, si corresponde.

Argumentos
cmd Es el comando para ejecutar en el shell adb. La forma de estos comandos se describe en el tema Android Debug Bridge.
Resultado que se muestra
  • Se muestran los resultados del comando, si corresponde. El formato de los resultados está determinado por el comando.

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

Inicia una actividad en este dispositivo mediante el envío de una instancia de Intent desarrollada a partir de los argumentos proporcionados.

Argumentos
uri Es el URI de la instancia de Intent (consulta Intent.setData()).
action Es la acción de la instancia de Intent (consulta Intent.setAction()).
data Es el URI de datos de la instancia de Intent (consulta Intent.setData()).
mimetype Es el tipo de MIME de la instancia de Intent (consulta Intent.setType()).
categories Es la estructura de datos iterables que contiene strings que definen categorías para la instancia de Intent (consulta Intent.addCategory()).
extras Es el diccionario de datos adicionales de la instancia de Intent (consulta Intent.putExtra() para ver un ejemplo).

La clave para cada elemento del diccionario debe ser una string. El valor del elemento puede ser cualquier tipo de datos simples o estructurados.

component Es el componente de la instancia de Intent (consulta ComponentName). El uso de este argumento dirigirá la instancia de Intent a una clase específica dentro de un paquete específico de Android.
flags Es la estructura de datos iterables que contiene marcas que controlan cómo se maneja la instancia de Intent (consulta Intent.setFlags()).

MonkeyImage takeSnapshot ()

Captura el búfer de la pantalla completa del dispositivo y da paso a una captura de pantalla de la pantalla actual.

Resultado que se muestra
  • Se muestra el objeto de MonkeyImage que contiene la imagen de la pantalla actual.

voidtouch (integer x, integer y, string type)

Envía un evento de entrada táctil, especificado por tipo, a la ubicación de la pantalla especificada por "x" e "y".

Argumentos
x Es la posición horizontal de entrada táctil en píxeles reales del dispositivo, comenzando por la parte izquierda de la pantalla en la orientación actual.
y Es la posición vertical de entrada táctil en píxeles reales del dispositivo, comenzando por la superior de la pantalla en la orientación actual.
type Es el tipo de evento de clave que se enviará. Los valores permitidos son DOWN, UP y DOWN_AND_UP.

voidtype (string message)

Envía los caracteres contenidos en el mensaje a este dispositivo, como si se hubieran ingresado desde el teclado del dispositivo. Esto es equivalente a llamar a press() para cada código de clave en message mediante el tipo de evento de clave DOWN_AND_UP.

Argumentos
message Es una string que contiene los caracteres que se enviarán.

void wake ()

Activa la pantalla del dispositivo.


Apéndice

Tabla 1: Nombres de variables de propiedades usados con getProperty() y getSystemProperty()

Grupo de propiedades Propiedad Descripción Notas
build board Es el nombre de código correspondiente a la placa del sistema del dispositivo. Consulta Build
brand Es el operador o proveedor para el que se personaliza el sistema operativo.
device Es el nombre del diseño del dispositivo.
fingerprint Es el identificador único correspondiente a la compilación en ejecución.
host
ID Es el número o la etiqueta de la lista de cambios.
model Es el nombre visible correspondiente al usuario final del dispositivo.
product Es el nombre general del producto.
tags Son etiquetas separadas por comas que describen la compilación, como "sin firmar" y "depuración".
type Es el tipo de compilación, como "user" o "eng".
user
CPU_ABI Es el nombre del conjunto de instrucciones del código nativo, en forma de tipo de CPU más convención de ABI.
manufacturer Es el fabricante del producto o hardware.
version.incremental Es el código interno que usa el sistema de control de fuente para representar esta versión del software.
version.release Es el nombre visible correspondiente al usuario de esta versión del software.
version.sdk Es la versión del SDK visible para el usuario asociada con esta versión de SO.
version.codename Es el nombre de código del desarrollo actual o "REL", si se lanzó esta versión del software.
display width Es el ancho de la pantalla del dispositivo en píxeles. Consulta DisplayMetrics para obtener más información.
height Es la altura de la pantalla del dispositivo en píxeles.
density Es la densidad lógica de la pantalla. Es un factor que ajusta las unidades DIP (píxel independiente de la densidad) a la resolución del dispositivo. La unidad DIP se ajusta de modo que 1 DIP sea equivalente a un píxel en una pantalla de 160 píxeles por pulgada. Por ejemplo, en una pantalla de 160 ppp, densidad = 1.0, mientras que en una pantalla de 120 ppp, densidad = 0.75.

El valor no respeta exactamente el tamaño real de la pantalla, pero se ajusta para adaptarse a cambios importantes en los DPI de la pantalla. Consulta density para obtener más información.

am.current package Es el nombre del paquete de Android del paquete en ejecución. Las claves am.current devuelven información acerca de la actividad en ejecución.
action Es la acción de la actividad actual. Tiene el mismo formato que el atributo name del elemento action en un manifiesto de paquete.
comp.class Es el nombre de clase del componente que inició la actividad actual. Consulta comp.package para obtener más información.
comp.package Es el nombre del paquete del componente que inició la actividad actual. Es un componente que se especifica mediante un nombre de paquete y el nombre de la clase que contiene el paquete.
data Son datos (si corresponde) contenidos en la instancia de Intent que inició la actividad actual.
categories Son categorías especificadas por la instancia de Intent que inició la actividad actual.
clock realtime Es la cantidad de milisegundos desde que se reinició el dispositivo, incluido el tiempo de suspensión profunda. Consulta SystemClock para obtener más información.
uptime Es la cantidad de milisegundos desde que se reinició el dispositivo, sin incluir el tiempo de suspensión profunda.
millis Es la hora actual desde el tiempo UNIX, en milisegundos.