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 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Transmite uma intent para o dispositivo, como se ela viesse de um aplicativo.
|
||||||||||
|
|
Simula um gesto de arrastar (tocar, manter pressionado e mover) na tela do dispositivo.
|
||||||||||
|
|
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.
|
||||||||||
|
|
. A API equivalente de
adb shell getprop <key>. This is provided for use
by platform developers.
|
||||||||||
|
|
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.
|
||||||||||
|
|
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.
|
||||||||||
|
|
Envia o evento de tecla especificado por "type" para a chave especificada por
"keycode".
|
||||||||||
|
|
Reinicializa o dispositivo no carregador de inicialização especificado por bootloadType.
|
||||||||||
|
|
Exclui o pacote especificado do dispositivo, inclusive os dados e cache relacionados.
|
||||||||||
|
|
Executa um comando do shell do
adb e retorna o resultado, se houver.
|
||||||||||
|
|
Inicia uma atividade no dispositivo enviando uma intent construída a partir dos
argumentos disponibilizados.
|
||||||||||
MonkeyImage
|
Captura todo o buffer de tela do dispositivo, gerando um objeto
MonkeyImage
que contém uma captura de tela da exibição atual.
|
||||||||||
|
|
Envia um evento de toque especificado por "type" para o local da tela determinado por x e y.
|
||||||||||
|
|
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.
|
||||||||||
|
|
Ativa a tela do dispositivo.
|
||||||||||
Constantes
string DOWN
string UP
string DOWN_AND_UP
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
InstrumentationTestRunnercomo 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 seInstrumentationTestRunnerfosse 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
- Objeto MonkeyImage que contém a imagem da tela atual.
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
|
||
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. |