MonkeyDevice

A classe monkeyrunner, que representa um dispositivo ou emulador, pode ser acessada pela estação de trabalho que executa o monkeyrunner.

Essa classe é usada para controlar um dispositivo ou emulador Android. Os métodos enviam eventos de IU, recuperam informações, instalam, removem e executam aplicativos.

Normalmente, não é necessário criar uma instância de MonkeyDevice. Em vez disso, use MonkeyRunner.waitForConnection() para criar um novo objeto a partir de uma conexão com um dispositivo ou emulador. Por exemplo, em vez de usar:

newdevice = MonkeyDevice()

use:

newdevice = MonkeyRunner.waitForConnection()

Resumo

Constantes
string DOWN Use isso com o argumento type de press() ou touch() para enviar um evento DOWN.
string UP Use isso com o argumento type de press() ou touch() para enviar um evento UP.
string DOWN_AND_UP Use isso com o argumento type de press() ou touch() para enviar um evento DOWN imediatamente seguido por um evento UP.
Métodos
void broadcastIntent (uri de string, ação de string, dados de string, tipo mime de string, categorias iterable extras de dictionary, componente component, sinalizações iterable)
Transmite uma intent para o dispositivo, como se ela viesse de um aplicativo.
void drag (início de tuple, fim de tuple, duração de float, etapas de integer)
Simula um gesto de arrastar (tocar, manter pressionado e mover) na tela do dispositivo.
object getProperty (chave de string)
Dado o nome de uma variável de ambiente do sistema, retorna o valor para o dispositivo. Os nomes das variáveis disponíveis estão listados na descrição detalhada desse método.
object getSystemProperty (string key)
. A API equivalente de adb shell getprop <key>. This is provided for use by platform developers.
void installPackage (string path)
Instala o aplicativo para Android ou o pacote de teste contido em packageFile no dispositivo. Se o aplicativo ou pacote de teste já estiver instalado, ele será substituído.
dictionary instrument (string className, dictionary args)
Executa o componente especificado na instrumentação Android e retorna os resultados em um dicionário cujo formato exato é determinado pelo componente em execução. O componente precisa estar presente no dispositivo.
void press (nome da string, tipo de dictionary)
Envia o evento de tecla especificado por "type" para a chave especificada por "keycode".
void reboot (string into)
Reinicializa o dispositivo no carregador de inicialização especificado por bootloadType.
void removePackage (pacote de string)
Exclui o pacote especificado do dispositivo, inclusive os dados e cache relacionados.
object shell (cmd de string)
Executa um comando do shell do adb e retorna o resultado, se houver.
void startActivity (uri de string, ação de string, dados de string, tipo mime de string, categorias iterable extras de dictionary, componente component, sinalizações)
Inicia uma atividade no dispositivo enviando uma intent construída a partir dos argumentos disponibilizados.
MonkeyImage takeSnapshot()
Captura todo o buffer de tela do dispositivo, gerando um objeto MonkeyImage que contém uma captura de tela da exibição atual.
void touch (integer x, integer y, tipo de integer)
Envia um evento de toque especificado por "type" para o local da tela determinado por x e y.
void type (mensagem de string)
Envia os caracteres contidos na mensagem para o dispositivo, como se tivessem sido digitados no teclado dele. Isso equivale a chamar press() para cada código de chave em message usando o tipo de evento de chave DOWN_AND_UP.
void wake ()
Ativa a tela do dispositivo.

Constantes

string DOWN

Valor press() ou touch(). Especifica que um tipo de evento DOWN precisa ser enviado ao dispositivo, o que corresponde a pressionar uma tecla ou tocar na tela.

string UP

Valor press() ou touch(). Especifica que um tipo de evento UP precisa ser enviado ao dispositivo, o que corresponde a soltar uma tecla ou levantar o dedo da tela.

string DOWN_AND_UP

valor press(), touch() ou type(). Especifica que um tipo de evento DOWN seguido de um UP deve ser enviado ao dispositivo, o que corresponde a pressionar uma tecla ou clicar na tela.

Métodos públicos

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

Transmite uma intent para o dispositivo, como se ela viesse de um aplicativo. Consulte Intent para ver mais informações sobre os argumentos.

Argumentos
uri URI para o intent. Consulte Intent.setData().
action A ação dessa intent (consulte Intent.setAction()).
data O URI de dados para essa intent (consulte Intent.setData()).
mimetype O tipo MIME da intent (consulte Intent.setType()).
categories Uma estrutura de dados iterável contendo strings que definem categorias para essa intent (consulte Intent.addCategory()).
extras Um dicionário de dados extras para essa intent (consulte Intent.putExtra() para ver um exemplo).

A chave para cada item do dicionário deve ser uma string. O valor do item pode ser qualquer tipo de dados simples ou estruturados.

component O componente dessa intent (consulte ComponentName). O uso desse argumento direcionará a intent para uma classe específica dentro de um determinado pacote Android.
flags Uma estrutura de dados iterável contendo sinalizações que controlam como a intent é gerenciada (consulte Intent.setFlags()).

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

Simula um gesto de arrastar (tocar, manter pressionado e mover) na tela do dispositivo.

Argumentos
start Ponto de partida do gesto de arrastar, na forma de tuple (x, y), em que x e y são números inteiro.
end Ponto final do gesto de arrastar, na forma de tuple (x, y), em que x e y são números inteiros.
duração Duração do gesto de arrastar, em segundos. O padrão é 1,0 segundo.
steps O número de etapas a serem seguidas ao interpolar pontos. O padrão é 10.

object getProperty (string key)

Dado o nome de uma variável de ambiente do sistema, retorna o valor para o dispositivo.

Argumentos
key Nome da variável de ambiente do sistema. Os nomes das variáveis disponíveis estão listados na Tabela 1. Nomes de variáveis de propriedade, ao final deste tópico.
Retornos
  • Valor da variável. O formato dos dados varia de acordo com a variável solicitada.

object getSystemProperty (string key)

Sinônimo de getProperty().

Argumentos
key Nome da variável de ambiente do sistema. Os nomes das variáveis disponíveis estão listados na Tabela 1. Nomes de variáveis de propriedade.
Retornos
  • Valor da variável. O formato dos dados varia de acordo com a variável solicitada.

void installPackage (string path)

Instala o aplicativo para Android ou o pacote de teste contido em packageFile no dispositivo. Se o aplicativo ou pacote de teste já estiver instalado, ele será substituído.

Argumentos
path Caminho e nome de arquivo totalmente qualificados do arquivo .apk a ser instalado.

dictionary instrument ( string className, dictionary args)

Executa o componente especificado com instrumentação Android e retorna os resultados em um dicionário cujo formato exato é determinado pelo componente em execução. O componente precisa estar no dispositivo.

Use esse método para iniciar um caso de teste que utiliza uma das classes de casos de teste do Android. Consulte Testar o aplicativo para saber mais sobre o teste de unidade pelo framework do Android.

Argumentos
className O nome de um componente Android que já está instalado no dispositivo, no formato padrão packagename/classname, em que packagename é o nome do pacote Android de um arquivo .apk no dispositivo e classname é o nome da classe de um componente Android (Activity, ContentProvider, Service ou BroadcastReceiver) nesse arquivo. Tanto packagename quanto classname precisam ser totalmente qualificados. Veja ComponentName para mais detalhes.
args Dicionário que contém sinalizadores e os valores correspondentes. Eles são transmitidos para o componente quando ele é iniciado. Se a sinalização não receber um valor, defina o valor do dicionário como uma string vazia.
Retornos
  • Um dicionário que contém a saída do componente. O conteúdo do dicionário é definido pelo próprio componente.

    Se você usar InstrumentationTestRunner como o nome da classe no argumento componentName, o dicionário resultante apresentará a única chave "stream". O valor de "stream" é uma string que contém a saída de teste, como se InstrumentationTestRunner fosse executado a partir da linha de comando. O formato dessa saída é descrito em Testar em outros ambientes de desenvolvimento integrados.

void press (string name, integer type)

Envia o evento especificado por type para a chave especificada por keycode.

Argumentos
name Nome do código-chave a ser enviado. Consulte KeyEvent para ver uma lista de nomes de códigos. Use o nome do código-chave, não o valor do inteiro.
type Tipo de evento de tecla a ser enviado. Os valores permitidos são DOWN, UP e DOWN_AND_UP.

void reboot (string bootloadType)

Reinicializa o dispositivo no carregador de inicialização especificado por bootloadType.

Argumentos
into Tipo de carregador de reinicialização usado. Os valores permitidos são "bootloader", "recovery" ou "None".

void removePackage (string package)

Exclui o pacote especificado do dispositivo, inclusive os dados e cache relacionados.

Argumentos
package Nome do pacote Android de um arquivo .apk no dispositivo.

object shell (string cmd)

Executa um comando do shell do adb e retorna o resultado, se houver.

Argumentos
cmd O comando a ser executado no shell adb. O formato desses comandos é descrito no tópico Android Debug Bridge.
Retornos
  • Resultados do comando, se houver. O formato dos resultados é determinado pelo comando.

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

Inicia uma atividade no dispositivo enviando uma intent construída a partir dos argumentos disponibilizados.

Argumentos
uri URI para o intent. Consulte Intent.setData().
action A ação da intent (consulte Intent.setAction()).
data O URI de dados para essa intent (consulte Intent.setData()).
mimetype O tipo MIME da intent (consulte Intent.setType()).
categories Uma estrutura de dados iterável contendo strings que definem categorias para essa intent (consulte Intent.addCategory()).
extras Um dicionário de dados extras para essa intent (consulte Intent.putExtra() para ver um exemplo).

A chave para cada item do dicionário deve ser uma string. O valor do item pode ser qualquer tipo de dados simples ou estruturados.

component O componente dessa intent (consulte ComponentName). O uso desse argumento direcionará a intent para uma classe específica dentro de um determinado pacote Android.
flags Uma estrutura de dados iterável contendo sinalizações que controlam como a intent é gerenciada (consulte Intent.setFlags()).

MonkeyImage takeSnapshot ()

Captura todo o buffer de tela do dispositivo, produzindo uma captura da tela atual.

Retornos

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

Envia um evento de toque especificado por tipo para o local da tela especificado por x e y.

Argumentos
x Posição horizontal do toque nos pixels reais do dispositivo, começando pelo lado esquerdo da tela na orientação atual.
y Posição vertical do toque nos pixels reais do dispositivo, começando pelo topo da tela na orientação atual.
type Tipo de evento de tecla a ser enviado. Os valores permitidos são DOWN, UP e DOWN_AND_UP.

void type (string message)

Envia os caracteres contidos na mensagem para o dispositivo, como se tivessem sido digitados no teclado dele. Isso equivale a chamar press() para cada código de chave em message usando o tipo de evento de tecla DOWN_AND_UP.

Argumentos
message String que contém os caracteres a serem enviados.

void wake ()

Ativa a tela do dispositivo.


Apêndice

Tabela 1.Nomes de variáveis de propriedade usados com getProperty() e getSystemProperty().

Grupo de propriedades Propriedade Descrição Observações
build board Codinome da placa do sistema do dispositivo. Ver Build
brand Operadora ou provedor para o qual o SO é personalizado.
device Nome do projeto do dispositivo.
fingerprint Identificador exclusivo para a compilação em execução no momento.
host
ID Número ou rótulo da lista de alterações.
model Nome do dispositivo visível para o usuário final.
product Nome geral do produto.
tags Tags separadas por vírgula que descrevem a compilação, como "unsigned" e "debug".
type Tipo de build, como "user" ou "eng".
user
CPU_ABI Nome do conjunto de instruções de código nativo, no formato tipo de CPU mais convenção ABI.
manufacturer Fabricante do produto/hardware.
version.incremental Código interno usado pelo sistema de controle de origem para representar a versão do software.
version.release Nome da versão do software visível para o usuário.
version.sdk Versão do SDK visível para o usuário, associada à versão do SO.
version.codename Codinome de desenvolvimento atual, ou "REL", se a versão do software tiver sido lançada.
display width Largura da tela do dispositivo, em pixels. Consulte DisplayMetrics para mais detalhes.
height Altura da tela do dispositivo, em pixels.
density Densidade lógica da tela. Esse é um fator que dimensiona as unidades DIP (Density-Independent Pixel) para a resolução do dispositivo. O DIP é ajustado para que 1 DIP seja equivalente a um pixel em uma tela de 160 pixels por polegada. Por exemplo, em uma tela de 160 dpi, a densidade é 1,0, enquanto em uma tela de 120 dpi, a densidade é 0,75.

O valor não segue exatamente o tamanho real da tela, mas é ajustado de acordo com grandes mudanças no DPI. Consulte density para saber mais detalhes.

am.current package Nome do pacote Android em execução no momento. As chaves am.current retornam informações sobre a atividade em execução no momento.
action Ação da atividade atual. Tem o mesmo formato que o atributo name do elemento action em um manifesto de pacote.
comp.class Nome da classe do componente que iniciou a atividade atual. Consulte comp.package para ver mais detalhes.
comp.package Nome do pacote do componente que iniciou a atividade atual. Um componente é especificado por um nome de pacote e pelo nome da classe que o pacote contém.
data Dados (se houver) contidos na intent que iniciou a atividade atual.
categories Categorias especificadas pela intent que iniciou a atividade atual.
clock realtime Número de milésimos de segundo desde a reinicialização do dispositivo, incluindo o tempo de inatividade. Consulte SystemClock para mais informações.
uptime Número de milésimos de segundo desde a reinicialização do dispositivo, sem incluir o tempo de inatividade.
millis Hora atual desde a época do UNIX, em milésimos de segundo.