MonkeyDevice

Es 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 y quitan, instalan y ejecutan aplicaciones.

Por lo general, no es necesario crear una instancia de MonkeyDevice. En su lugar, usa 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 Úsalo con el argumento type de press() o touch() para enviar un evento DOWN.
string UP Úsalo con el argumento type de press() o touch() para enviar un evento UP.
string DOWN_AND_UP Úsalo con el argumento type de press() o touch() para enviar un evento DOWN inmediatamente seguido de un evento UP.
Métodos
void broadcastIntent (URI de string, acción de string, datos de string, mimetype de string, categorías de iterable extras de dictionary, componente component, marcas de iterable)
Transmite una instancia de Intent al dispositivo, como si la instancia de Intent proviniera de una aplicación.
void drag (inicio de tuple, fin de tuple, duración de float, pasos de integer)
Simula un gesto de arrastre (mantener presionado y mover) en la pantalla del dispositivo.
object getProperty (clave de string)
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 (clave de string)
. Es el equivalente de API de adb shell getprop <key>. This is provided for use by platform developers. .
void installPackage (ruta de acceso de string)
Instala en este dispositivo la aplicación para 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 (nombre de clase de string, argumentos de dictionary)
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 (nombre de string, tipo de dictionary)
Envía el evento de clave especificado por tipo a la clave especificada por el código de clave.
void reboot (inicio de string)
Reinicia el dispositivo en el bootloader especificado por bootloadType.
void removePackage (paquete de string)
Borra el paquete especificado de este dispositivo, incluidos los datos y la caché.
object shell (cmd de string)
Ejecuta un comando shell adb y muestra el resultado, si corresponde.
void startActivity (URI de string, acción de string, datos de string, mimetype de string, categorías de iterable extras de dictionary, componente 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 la pantalla actual.
void touch (integer x, integer y, tipo de integer)
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 (mensaje de string)
Envía los caracteres contenidos en el mensaje a este dispositivo, como si se hubieran ingresado desde el teclado del dispositivo. Esto equivale a llamar a press() para cada código clave en message mediante el tipo de evento clave DOWN_AND_UP.
void wake ()
Activa la pantalla del dispositivo.

Constantes

string DOWN

Es un valor de 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 de 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

Es un valor de 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 ( URI de string, acción de string, datos de string, mimetype de string, categorías de iterable extras de dictionary, componente component, marcas de iterable)

Transmite una instancia de Intent al dispositivo, como si el 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 este Intent (consulta Intent.setAction()).
datos Es el URI de datos de este Intent (consulta Intent.setData()).
mimetype Es el tipo de MIME del Intent (consulta Intent.setType()).
categories Es una estructura de datos iterable que contiene strings que definen categorías para este Intent (consulta Intent.addCategory()).
extras Es un diccionario de datos adicionales para este 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 este Intent (consulta ComponentName). Si usas este argumento, dirigirás el Intent a una clase específica dentro de un paquete específico de Android.
flags Es una estructura de datos iterable con marcas que controlan la administración del Intent (consulta Intent.setFlags()).

void drag ( inicio de tuple, fin de tuple, duración de float, pasos de integer)

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

Argumentos
iniciar 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.
duración 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 (clave de string)

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 (clave de string)

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 (ruta de acceso de string)

Instala en este dispositivo la aplicación para 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 ( nombre de clase de string, argumentos de dictionary)

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 en ejecución. 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 framework de pruebas de Android.

Argumentos
className Es el nombre de un componente de Android que ya está instalado en el dispositivo, en el formato estándar packagename/classname, en el que packagename es el nombre de paquete de Android de un archivo .apk en este dispositivo, y classname es el nombre de clase de un componente de Android (Activity, ContentProvider, Service o BroadcastReceiver) de ese archivo. Tanto packagename como classname deben ser nombres completamente calificados. 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 de resultados contendrá la clave única "stream". El valor de "stream" es una string que contiene el resultado de la prueba, como si se ejecutara InstrumentationTestRunner desde la línea de comandos. En Pruebas en otros IDE, se describe el formato de este resultado.

void press (nombre de string, tipo de integer)

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 los nombres de los 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.

void reboot (bootloadType de string)

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 (paquete de string)

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 (cmd de string)

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

Argumentos
cmd Es el comando que se 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 ( URI de string, acción de string, datos de string, mimetype de string, categorías de iterable extras de dictionary, componente component, marcas de iterable)

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 del Intent (consulta Intent.setAction()).
datos Es el URI de datos del Intent (consulta Intent.setData()).
mimetype Es el tipo de MIME del Intent (consulta Intent.setType()).
categories Es una estructura de datos iterable que contiene strings que definen categorías del Intent (consulta Intent.addCategory()).
extras Es un diccionario de datos adicionales del 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 para el Intent (consulta ComponentName). Si usas este argumento, dirigirás el Intent a una clase específica dentro de un paquete específico de Android.
flags Es una estructura de datos iterable con marcas que controlan la administración del Intent (consulta Intent.setFlags()).

MonkeyImage takeSnapshot ()

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

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

void touch ( integer x, integer y, tipo de string)

Envía un evento 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 su 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 su orientación actual.
type Es el tipo de evento de clave que se enviará. Los valores permitidos son DOWN, UP y DOWN_AND_UP.

void type (mensaje de string)

Envía los caracteres contenidos en el mensaje a este dispositivo, como si se hubieran ingresado desde el teclado del dispositivo. Esto equivale a llamar a press() para cada clave de código 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 que se usan 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. Ver 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 origen 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 interno 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 detalles.
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 dpi, densidad = 1.0, mientras que en una pantalla de 120 dpi, densidad = .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 que está en ejecución. Las claves am.current muestran información sobre la actividad en ejecución.
action Es la acción de la actividad actual. Esto 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.