EmuloMobile

Como usar variáveis em macros Android: contadores e ações condicionais

Aprenda a dar memória a uma macro Android com variáveis de texto, número e booleano, usando contadores, expressões e condições no EmuloMobile.

Por Sertta 8 min de leitura
variáveis em macros Android contador em macro Android automação Android condicional tutorial EmuloMobile EmuloMobile

Uma macro fixa repete ações. Uma macro mais útil também consegue lembrar o que já aconteceu: quantas vezes tentou uma operação, se um aviso apareceu ou qual caminho deve executar em seguida. Essa memória evita que o fluxo trate todo ciclo como se fosse o primeiro.

O EmuloMobile oferece variáveis no escopo da macro para essa função. Você pode criar valores de texto, número e booleano, atualizá-los durante a execução e usar condições Por Variável para controlar passos individuais ou um bloco composto. Tudo é configurado no construtor visual no Android.

Este guia parte de uma macro pequena já aberta para edição. Se você ainda vai montar o primeiro fluxo, veja antes como criar automação Android diretamente no aparelho.

O que uma variável acrescenta à macro Android

Condições visuais respondem a perguntas sobre a tela atual: “esta imagem está visível?”, “este texto apareceu?” ou “esta área mudou de cor?”. Uma variável responde a outra pergunta: “o que esta macro já aprendeu ou contou durante esta execução?”.

Essa diferença permite criar padrões como:

  • limitar quantas vezes um passo pode ser tentado;
  • contar itens concluídos ou telas processadas;
  • lembrar uma escolha como texto;
  • marcar se uma ação que deve ocorrer uma vez já foi executada;
  • alterar uma quantidade com uma expressão numérica;
  • combinar o estado interno com condições por imagem, texto ou cor.

Os valores começam nos padrões configurados no início de cada execução ou teste. Eles são a memória da macro enquanto ela roda, não um banco de dados permanente entre execuções separadas.

Escolha o tipo da variável antes de montar a condição

O EmuloMobile aceita três tipos de variável. Escolha conforme a decisão que o fluxo precisa tomar.

Número

Use um número para contadores, quantidades e cálculos. O número pode ser inteiro ou decimal, e você escolhe se valores negativos serão permitidos.

Variáveis numéricas aceitam verificações de igualdade e diferença, além de maior que e menor que. Ao definir um novo valor, você pode informar uma expressão como tentativas + 1 ou (itens * 2) + bonus.

Booleano

Um booleano assume verdadeiro ou falso. Ele funciona bem para estados como aviso_visto, login_feito ou primeiro_ciclo_concluido.

As condições booleanas verificam se o valor atual é igual ou diferente do esperado.

Texto

Use texto para um rótulo, modo, rota ou outro valor curto que não exija cálculo. As condições de texto aceitam igual a, diferente de, contém e não contém.

Nomes usados em expressões numéricas precisam começar com letra ou sublinhado e conter apenas letras, números e sublinhados. Nomes como tentativas, total_itens e valor2 funcionam bem porque deixam o propósito claro no editor e na expressão.

Como criar um contador no EmuloMobile

O exemplo abaixo limita um bloco composto de tentativa a três execuções. Esse bloco pode conter a ação real que você quer repetir e, depois dela, a atualização do contador.

1. Crie a variável

Abra a macro no construtor e adicione uma ação Definir variável. No editor dessa ação, selecione Gerenciar variáveis e depois Nova variável.

Configure assim:

  • Nome: tentativas
  • Tipo: Número
  • Subtipo: Inteiro
  • Permitir negativos: desativado
  • Valor padrão: 0

Crie a variável. O padrão faz cada nova execução da macro começar com zero tentativas.

2. Agrupe as ações da tentativa em um bloco composto

Adicione uma Ação Composta e coloque dentro dela a ação que você quer limitar. Pode ser um toque, um deslize ou outro passo disponível. Manter a tentativa em um único bloco permite que uma condição controle o grupo inteiro.

No fim do mesmo bloco composto, adicione Definir variável, escolha tentativas e informe:

tentativas + 1

O valor atual é lido, recebe mais um e o resultado vira o novo valor. Não é necessário criar um passo de cálculo separado.

3. Adicione a condição de limite

Adicione uma condição ao bloco composto, escolha Por Variável e configure:

  • Variável: tentativas
  • Operador: menor que
  • Comparar com: 3

O bloco pode rodar enquanto o contador estiver em 0, 1 ou 2. Depois da terceira passagem pelo bloco, tentativas chega a 3 e a condição impede uma nova tentativa.

4. Trate o limite de forma explícita

Depois do bloco composto, adicione a ação que deve tratar o limite, como uma notificação ou captura de tela. Controle-a com outra condição Por Variável: tentativas igual a 3.

Se o fluxo ao redor se repetir, redefina o contador depois de tratar o limite ou use um segundo booleano para marcar que o tratamento já rodou. Caso contrário, uma ação controlada apenas por tentativas = 3 continua apta nos ciclos seguintes.

Primeiro a condição, depois a ação: evite um bloqueio lógico

O EmuloMobile avalia as condições de um passo antes de executar a ação. Isso é importante quando a mesma variável aparece nos dois lados desse passo.

Imagine que tentativas começa em 0 e uma ação Definir variável deveria mudá-la para 1. Se você colocar tentativas > 0 como condição dessa mesma ação, ela nunca rodará: a condição espera um valor que somente a ação bloqueada poderia criar.

Use uma destas estruturas:

  • atualize a variável em um passo anterior e sem essa condição;
  • deixe uma condição visual disparar a atualização e use o novo valor em um passo posterior;
  • controle um bloco composto pelo valor atual e atualize a variável dentro desse bloco;
  • garanta que outro caminho válido possa mudar o valor esperado pela condição.

É por causa dessa ordem que o exemplo do contador verifica tentativas < 3 no bloco composto e faz o incremento dentro dele.

Expressões e comparações disponíveis

Para valores numéricos, Definir variável aceita cálculos com outras variáveis numéricas. O motor suporta adição, subtração, multiplicação, divisão, divisão inteira, resto, potência e parênteses.

Alguns exemplos práticos:

  • tentativas + 1 para incrementar um contador;
  • restantes - 1 para reduzir uma quantidade;
  • preco_unitario * itens para calcular um total;
  • (sucessos * 100) / tentativas para calcular uma taxa quando tentativas não for zero;
  • indice % 2 para alternar entre dois caminhos.

O editor de condição filtra os operadores conforme o tipo:

  • número: igual a, diferente de, maior que, menor que;
  • booleano: igual a, diferente de;
  • texto: igual a, diferente de, contém, não contém.

Mantenha as expressões curtas e proteja divisões com uma condição anterior que exclua o zero. Um fluxo claro é mais fácil de testar do que uma fórmula densa escondida em um passo.

Três padrões práticos com variáveis

Execute uma preparação apenas uma vez

Crie um booleano preparo_concluido com padrão falso. Controle o bloco de preparação com preparo_concluido = falso e defina o valor como verdadeiro no fim do bloco. No próximo ciclo, a preparação será ignorada.

Mude o comportamento depois de um limite

Crie um contador inteiro processados. Incremente o valor após cada item concluído. Controle o caminho normal com processados < 10 e o caminho de conclusão com processados = 10.

Lembre uma rota selecionada

Crie uma variável de texto rota. Defina valores como padrao ou revisao quando o estado correspondente for detectado na tela. Passos posteriores podem usar rota = revisao sem tentar deduzir novamente aquela escolha pela interface.

Combine variáveis com condições visuais

Variáveis não substituem a detecção da tela. Elas completam essa detecção.

Por exemplo, uma condição por imagem pode confirmar que um botão está visível, enquanto uma condição por variável confirma que a macro ainda tem menos de três tentativas. As duas podem controlar o mesmo bloco composto. A verificação visual evita tocar na tela errada; o contador evita repetir indefinidamente.

Escolha o sinal mais simples para cada responsabilidade:

  • use imagem, texto ou cor para o que a interface mostra agora;
  • use uma variável para o que a macro contou ou decidiu durante a execução.

Teste o fluxo antes de deixá-lo rodando

Use um caso curto e confira cada transição:

  1. confirme se o valor padrão representa o primeiro ciclo esperado;
  2. verifique se Definir variável roda apenas depois do evento que deve ser contado;
  3. teste o valor imediatamente anterior ao limite;
  4. teste o valor exato do limite;
  5. confira o que acontece no ciclo seguinte;
  6. pare e inicie a macro para confirmar que os padrões são aplicados novamente;
  7. remova as referências antes de tentar excluir uma variável que já está em uso.

Um contador só é útil quando cada incremento representa o evento que você queria contar. Mantenha a atualização perto desse evento e nomeie a variável pelo significado, não pela posição no fluxo.

Dê memória controlada à macro

Variáveis transformam uma sequência visual em um fluxo capaz de contar, lembrar e escolher. Comece por um estado pequeno, como um contador de tentativas ou um booleano de execução única, e deixe explícitas a atualização e a condição de saída. Isso normalmente basta para trocar uma repetição sem fim por uma rotina limitada e fácil de inspecionar.

Conheça o EmuloMobile e crie macros Android condicionais diretamente no aparelho.