Pular para o conteúdo

Instalar, iniciar e ler um app no Android emulado

Instale um APK, inicie o app por pacote, ajuste permissões e leia a tela e os logs do Android emulado.

Ver Markdown

Este é o caminho do Android: colocar um APK no aparelho emulado, abrir o app, mexer nas permissões de runtime e ler o que está acontecendo — a árvore de acessibilidade e o logcat. São os passos que substituem “instalar pelo Android Studio” e “olhar a tela” quando o aparelho está dentro do Elyra.

Pré-requisitos

  • Um aparelho Android emulado ativo para o workspace. Veja Emulador de celular.
  • O APK já compilado no disco, se você for instalar.
  • O pacote do app — e a activity, se ela não for a padrão.

Passos

  1. Instale o APK. Aponte o caminho do arquivo e o alvo:

    Janela do terminal
    elyra emulator install ./app-debug.apk --device emulator-5554 --json

    Use --reinstall para substituir uma instalação existente do mesmo pacote:

    Janela do terminal
    elyra emulator install ./app-debug.apk --reinstall --json
  2. Inicie o app pelo pacote, com a activity quando ela importar:

    Janela do terminal
    elyra emulator launch com.acme.app --activity .MainActivity --json
  3. Conceda ou revogue uma permissão de runtime. A ordem é grant|revoke, depois o pacote, depois a permissão:

    Janela do terminal
    elyra emulator permissions grant com.acme.app android.permission.CAMERA --json
    elyra emulator permissions revoke com.acme.app android.permission.CAMERA --json
  4. Redefina todas as concessões de runtime de uma vez, quando quiser um estado limpo. reset não recebe pacote nem permissão:

    Janela do terminal
    elyra emulator permissions reset --json
  5. Leia a tela pela árvore de acessibilidade. ax despeja a árvore do uiautomator, que é a forma de saber o que está visível sem captura de tela:

    Janela do terminal
    elyra emulator ax --device emulator-5554 --json
  6. Capture um recorte do log. logcat faz um dump pontual, com limite de linhas e filtros por tag:

    Janela do terminal
    elyra emulator logcat --lines 200 --device emulator-5554 --json
    elyra emulator logcat --filters "MyTag:D" --filters "*:S" --lines 200 --json

    Cada filtro é TAG:PRIORIDADE, com prioridade entre V D I W E F S e * como tag curinga.

Resultado

  • O APK fica instalado no aparelho emulado e o app abre por pacote e activity.
  • O estado das permissões de runtime fica sob seu controle pelos comandos, sem passar pela interface do Android.
  • A árvore de acessibilidade e as linhas de log dizem o que o app publicou e registrou.

Limites

  • Estes comandos são exclusivos do Android. Num Simulator do iOS eles são recusados com emulator_unsupported. No iOS, install e launch ficam por conta das ferramentas da Apple, fora do Elyra.
  • Um APK não confiável altera o aparelho. Instalar é executar código de terceiros no dispositivo: instale só o que você compilou ou confia, e prefira um AVD descartável para isso.
  • reset apaga todas as concessões de runtime que você deu — não apenas a última. Ele é o caminho para voltar ao estado inicial e também o caminho para quebrar um app que dependia delas.
  • A árvore de acessibilidade e os logs podem conter dados pessoais ou tokens. Redija antes de compartilhar: nada aqui foi escrito para virar anexo público.
  • Leia o campo de resultado, não apenas a ausência de erro. install responde installed, launch responde launched e permissions responde applied; a variante falsa traz o motivo.
  • A ordem das permissões é a armadilha comum: trocar pacote e permissão é recusado, e a recusa não diz qual dos dois está fora de lugar.
  • Não existe verbo para desinstalar um app nesta família. exec é passthrough bruto, roda no shell do dispositivo e devolve apenas o stdout — e pode alterar o estado do simulador.
  • Não há captura de tela nem cópia de arquivo do dispositivo por aqui.

Recuperação e limpeza segura

  • A instalação falhou — releia o motivo na resposta; confirme que o caminho do APK existe no host de execução e que o alvo é um dispositivo Android.
  • O app não abriu — confira o pacote e a activity; sem --activity, o pacote precisa resolver a activity padrão.
  • A permissão foi recusada — confirme a ordem grant|revoke, o pacote e o nome completo da permissão (android.permission.<NOME>).
  • Desfazer uma concessão — permissions revoke para uma permissão específica; permissions reset para todas.
  • Encerrar o auxiliar — elyra emulator kill para liberar a sessão deixando o aparelho ligado, ou elyra emulator shutdown para encerrar e desligar o dispositivo. Veja Comandos do emulador.

Próximos passos