Cómo configurar el proxy con Android Emulator

En el emulador de Android, puedes usar un proxy para depurar el tráfico de la aplicación o acceder a Internet desde detrás de un firewall corporativo. El emulador ofrece dos mecanismos de proxy distintos para admitir estos diferentes casos de uso: el proxy del sistema Android y el proxy del emulador.

Cómo elegir el proxy adecuado

Antes de configurar un proxy, es importante comprender los dos casos de uso. El proxy del sistema de Android se usa para inspeccionar el tráfico de la aplicación, mientras que el proxy del emulador se usa para navegar por las restricciones de red. Estos dos proxies son mutuamente excluyentes; solo puedes tener uno habilitado a la vez.

Función Proxy del sistema Android Proxy del emulador
Caso de uso principal Depuración de apps Firewall Bypass
Capa operativa Capa de red Capa de aplicación
Configuración IU de configuración de Wi-Fi del sistema Android IU de controles extendidos del emulador o marca
-http-proxy
Depuración de HTTPS : Permite que herramientas como Charles Proxy
intercepten el tráfico cuando se instala un certificado.
No: Crea un túnel TCP, lo que impide la inspección de SSL.
Controla el tráfico que no es de HTTP/HTTPS
No: Principalmente, controla solo el tráfico HTTP y
HTTPS.
: Reenvía todo el tráfico de TCP.

Caso de uso 1: Depuración de aplicaciones con el proxy del sistema Android

Para depurar el tráfico de red de tu aplicación, como inspeccionar solicitudes HTTPS con una herramienta como Charles Proxy, debes usar el proxy del sistema de Android.

Este proxy opera en la capa de aplicación dentro del SO Android. Permite que las herramientas de depuración intercepten e inspeccionen el tráfico, pero esto requiere instalar los certificados de seguridad necesarios en el dispositivo emulado.

Configura el proxy del sistema Android

Configuración

Puedes configurar el proxy del sistema Android de dos maneras:

  1. Configuración manual: En el emulador, ve a Configuración > Internet y redes > Wi-Fi, selecciona tu red y, luego, ingresa manualmente la configuración del proxy.
  2. Configuración automática: Puedes configurar el proxy del sistema Android de forma programática. Para ello, se crea una prueba de instrumentación que usa un framework de automatización de IU, como UI Automator, para abrir la app de Configuración de Android y aplicar la configuración del proxy sin intervención manual.

Caso de uso 2: Cómo omitir firewalls corporativos con el proxy del emulador

En muchas redes corporativas, los administradores de red rechazan las conexiones directas a Internet y, en su lugar, deben pasar por un proxy específico. Para acceder a recursos externos desde una red restringida, debes usar el proxy del emulador.

Este mecanismo opera en un nivel de red inferior y enruta todo el tráfico TCP del dispositivo emulado a través del proxy especificado, lo que lo hace ideal para la transferencia de firewall. Reescribe de forma transparente las solicitudes HTTP del dispositivo virtual antes de enviarlas al proxy, lo que permite que funcionen correctamente.

Configuración

Cuando usas el emulador en Android Studio, puedes configurar un proxy con los parámetros de configuración del menú de Android Studio (Settings > Appearance & Behavior > System Settings > HTTP Proxy). Puedes encontrar más detalles en Cómo configurar el proxy de Android Studio en la documentación de Android Studio.

Cuando usas el emulador de forma independiente (fuera de Android Studio), puedes configurar el proxy del emulador con uno de los siguientes métodos:

  1. Marca de línea de comandos: Inicia el emulador desde la línea de comandos con la marca -http-proxy <proxy>. La información de <proxy> se puede especificar en el formato http://<machineName>:<port> o http://<username>:<password>@<machineName>:<port>.

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

    o

    emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>
    
  2. Variable de entorno: Define la variable de entorno http_proxy con la configuración de tu proxy. El emulador verifica esta variable durante el inicio y usa su valor automáticamente si está definido.

  3. Controles extendidos: Abre los Controles extendidos del emulador, navega a Configuración > Proxy y, luego, ingresa manualmente la configuración del proxy HTTP. El emulador guarda estos parámetros de configuración para el dispositivo y los restablece cuando se reinicia.

    Configura el proxy del emulador

El proxy del emulador opera en la capa de red. Canaliza el tráfico HTTPS a través de TCP, pero este tráfico se reenvía sin descifrar, lo que impide la inspección de HTTPS. El proxy del emulador no admite el redireccionamiento de UDP.

Interacción con Android Studio

Android Studio tiene su propio diálogo de configuración de proxy para descargar actualizaciones y bibliotecas. Cuando inicies un emulador desde Android Studio, leerá la configuración de proxy del IDE una vez para completar la configuración de Proxy del emulador. Sin embargo, estos parámetros de configuración no afectan el proxy del sistema Android.