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
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 seInstrumentationTestRunner
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
- 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
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. |