Configurar o proxy com o Android Emulator

No Android Emulator, é possível usar um proxy para depurar o tráfego de aplicativos ou acessar a Internet por trás de um firewall corporativo. O emulador oferece dois mecanismos de proxy distintos para oferecer suporte a esses diferentes casos de uso: o proxy do sistema Android e o proxy do emulador.

Como escolher o proxy certo

Antes de configurar um proxy, é importante entender os dois casos de uso. O proxy do sistema Android é usado para inspecionar o tráfego de aplicativos, enquanto o proxy do emulador é usado para navegar pelas restrições de rede. Esses dois proxies são mutuamente exclusivos. Só é possível ativar um por vez.

Recurso Proxy do sistema Android Proxy do emulador
Caso de uso principal Depuração de apps Bypass de firewall
Camada operacional Camada de rede Camada de aplicação
Configuration Interface das configurações de Wi-Fi do sistema Android Interface de controles estendidos do emulador ou flag
-http-proxy.
Depuração de HTTPS Sim: permite que ferramentas como o Charles Proxy
interceptem o tráfego quando um certificado é
instalado.
Não: cria um túnel TCP, impedindo a inspeção SSL
.
Processa tráfego não HTTP/HTTPS
Não: processa principalmente apenas o tráfego HTTP e
HTTPS.
Sim: encaminha todo o tráfego TCP.

Caso de uso 1: depuração de aplicativos com o proxy do sistema Android

Para depurar o tráfego de rede do aplicativo, como inspecionar solicitações HTTPS com uma ferramenta como o Charles Proxy, use o proxy do sistema Android.

Esse proxy opera na camada de aplicativo do SO Android. Ele permite que ferramentas de depuração interceptem e inspecionem o tráfego, mas isso exige a instalação dos certificados de segurança necessários no dispositivo emulado.

Configurar o proxy do sistema Android

Configuração

É possível configurar o proxy do sistema Android de duas maneiras:

  1. Configuração manual: no emulador, acesse Configurações > Rede e Internet > Wi-Fi, selecione sua rede e insira manualmente as configurações de proxy.
  2. Configuração automatizada: é possível configurar programaticamente o proxy do sistema Android. Isso é feito criando um teste de instrumentação que usa um framework de automação de interface, como o UI Automator, para abrir o app Configurações do Android e aplicar a configuração de proxy sem intervenção manual.

Caso de uso 2: como ignorar firewalls corporativos com um proxy de emulador

Em muitas redes corporativas, conexões diretas com a Internet são recusadas pelos administradores da rede e precisam passar por um proxy específico. Para acessar recursos externos de dentro de uma rede restrita, use o proxy do emulador.

Esse mecanismo opera em um nível de rede mais baixo e roteia todo o tráfego TCP do dispositivo emulado pelo proxy especificado, o que o torna ideal para travessia de firewall. Ele reescreve de maneira transparente as solicitações HTTP do dispositivo virtual antes de enviá-las ao proxy, permitindo que funcionem corretamente.

Configuração

Ao usar o emulador no Android Studio, é possível configurar um proxy com as configurações no menu do Android Studio ( Settings > Appearance & Behavior > System Settings > HTTP Proxy). Para mais detalhes, consulte Configurar o proxy do Android Studio na documentação do Android Studio.

Ao usar o emulador de forma independente (fora do Android Studio), você pode configurar o proxy do emulador usando um dos seguintes métodos:

  1. Flag de linha de comando: inicie o emulador pela linha de comando com a flag -http-proxy <proxy>. As informações de <proxy> podem ser especificadas no formato http://<machineName>:<port> ou http://<username>:<password>@<machineName>:<port>.

    emulator -http-proxy http://<machineName>:<port>
    

    ou

    emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>
    
  2. Variável de ambiente: defina a variável de ambiente http_proxy com as configurações de proxy. O emulador verifica essa variável na inicialização e usa o valor dela automaticamente se estiver definida.

  3. Controles estendidos: abra os Controles estendidos do emulador, navegue até Configurações > Proxy e insira manualmente a configuração de proxy HTTP. O emulador salva essas configurações para o dispositivo e as restaura na reinicialização.

    Configurar o proxy do emulador

O proxy do emulador opera na camada de rede. Ele faz um túnel de tráfego HTTPS por TCP, mas esse tráfego é encaminhado sem descriptografia, o que impede a inspeção HTTPS. O proxy do emulador não é compatível com o redirecionamento de UDP.

Interação com o Android Studio

O Android Studio tem uma caixa de diálogo de configuração de proxy própria para baixar atualizações e bibliotecas. Quando você inicia um emulador no Android Studio, ele lê as configurações de proxy do IDE uma vez para preencher a configuração Proxy do emulador. No entanto, essas configurações não afetam o proxy do sistema Android.