Konfigurowanie serwera proxy w narzędziu Android Emulator

W emulatorze Androida możesz używać serwera proxy do debugowania ruchu aplikacji lub uzyskiwania dostępu do internetu zza firmowej zapory sieciowej. Emulator oferuje 2 różne mechanizmy proxy, które obsługują te różne przypadki użycia: proxy systemu Android i proxy emulatora.

Wybór odpowiedniego serwera proxy

Przed skonfigurowaniem serwera proxy warto poznać 2 przypadki użycia. Serwer proxy systemu Android służy do sprawdzania ruchu aplikacji, a serwer proxy emulatora – do omijania ograniczeń sieciowych. Te 2 serwery proxy wzajemnie się wykluczają. W danym momencie może być włączony tylko jeden z nich.

Funkcja Systemowy serwer proxy Androida Emulator Proxy
Główny przypadek użycia Debugowanie aplikacji Omijanie zapory sieciowej
Warstwa operacyjna Warstwa sieci Warstwa aplikacji
Konfiguracja Interfejs ustawień Wi-Fi w systemie Android Interfejs rozszerzonych elementów sterujących emulatora lub flaga
-http-proxy.
Debugowanie HTTPS Tak – umożliwia narzędziom takim jak Charles Proxy przechwytywanie ruchu, gdy jest zainstalowany certyfikat.

Nie – tworzy tunel TCP, co uniemożliwia kontrolę SSL.
Obsługuje ruch Non-HTTP/HTTPS
Nie – obsługuje głównie ruch HTTP i HTTPS.
Tak – przekierowuje cały ruch TCP.

Przypadek użycia 1. Debugowanie aplikacji za pomocą systemowego serwera proxy Androida

Do debugowania ruchu w sieci aplikacji, np. sprawdzania żądań HTTPS za pomocą narzędzia takiego jak Charles Proxy, używaj proxy systemu Android.

Ten serwer proxy działa w warstwie aplikacji w systemie operacyjnym Android. Umożliwia to narzędziom do debugowania przechwytywanie i sprawdzanie ruchu, ale wymaga zainstalowania na emulowanym urządzeniu niezbędnych certyfikatów bezpieczeństwa.

Konfigurowanie systemowego serwera proxy Androida

Konfiguracja

Serwer proxy systemu Android możesz skonfigurować na 2 sposoby:

  1. Konfiguracja ręczna: w emulatorze wybierz Ustawienia > Sieć i internet > Wi-Fi, wybierz sieć i ręcznie wprowadź ustawienia serwera proxy.
  2. Automatyczna konfiguracja: możesz programowo skonfigurować serwer proxy systemu Android. W tym celu utwórz test z instrumentacją, który korzysta z platformy automatyzacji interfejsu, np. UI Automator, aby otworzyć aplikację Ustawienia Androida i zastosować konfigurację serwera proxy bez ręcznej interwencji.

Przypadek użycia 2. Omijanie zapór sieciowych firmy za pomocą serwera proxy emulatora

W wielu sieciach firmowych administratorzy sieci odrzucają bezpośrednie połączenia z internetem i zamiast tego wymagają, aby przechodziły one przez określony serwer proxy. Aby uzyskać dostęp do zasobów zewnętrznych z takiej sieci o ograniczonym dostępie, użyj serwera proxy emulatora.

Ten mechanizm działa na niższym poziomie sieci i kieruje cały ruch TCP emulowanego urządzenia przez określony serwer proxy, co sprawia, że idealnie nadaje się do przekraczania zapory sieciowej. Przezroczyste przekształca żądania HTTP z urządzenia wirtualnego przed wysłaniem ich do serwera proxy, co umożliwia ich prawidłowe działanie.

Konfiguracja

Jeśli korzystasz z emulatora w Android Studio, możesz skonfigurować serwer proxy za pomocą ustawień w menu Android Studio (Settings > Appearance & Behavior > System Settings > HTTP Proxy). Więcej informacji znajdziesz w dokumentacji Android Studio w artykule Konfigurowanie serwera proxy w Android Studio.

Jeśli używasz emulatora jako samodzielnego narzędzia (poza Androidem Studio), możesz skonfigurować serwer proxy emulatora za pomocą jednej z tych metod:

  1. Flaga wiersza poleceń: uruchom emulator z wiersza poleceń za pomocą flagi -http-proxy <proxy>. Informacje <proxy> można podać w formacie http://<machineName>:<port> lub http://<username>:<password>@<machineName>:<port>.

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

    lub

    emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>
    
  2. Zmienna środowiskowa: zdefiniuj zmienną środowiskową http_proxy z ustawieniami serwera proxy. Emulator sprawdza tę zmienną podczas uruchamiania i automatycznie używa jej wartości, jeśli jest zdefiniowana.

  3. Elementy sterujące zaawansowane: otwórz Elementy sterujące zaawansowane emulatora, wybierz Ustawienia > Serwer proxy i ręcznie wprowadź konfigurację serwera proxy HTTP. Emulator zapisuje te ustawienia urządzenia i przywraca je po ponownym uruchomieniu.

    Konfigurowanie serwera proxy emulatora

Serwer proxy emulatora działa na poziomie sieci. Tuneluje ruch HTTPS przez TCP, ale ten ruch jest przekazywany bez odszyfrowania, co uniemożliwia inspekcję HTTPS. Serwer proxy emulatora nie obsługuje przekierowania UDP.

Interakcja z Android Studio

Android Studio ma własne okno konfiguracji serwera proxy do pobierania aktualizacji i bibliotek. Gdy uruchomisz emulator z Android Studio, odczyta on ustawienia serwera proxy IDE, aby wypełnić konfigurację Emulator Proxy. Te ustawienia nie mają jednak wpływu na serwer proxy systemu Android.