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.

Konfiguracja
Serwer proxy systemu Android możesz skonfigurować na 2 sposoby:
- Konfiguracja ręczna: w emulatorze wybierz Ustawienia > Sieć i internet > Wi-Fi, wybierz sieć i ręcznie wprowadź ustawienia serwera proxy.
- 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:
Flaga wiersza poleceń: uruchom emulator z wiersza poleceń za pomocą flagi
-http-proxy <proxy>. Informacje<proxy>można podać w formaciehttp://<machineName>:<port>lubhttp://<username>:<password>@<machineName>:<port>.emulator -http-proxy http://<machineName>:<port>lub
emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>Zmienna środowiskowa: zdefiniuj zmienną środowiskową
http_proxyz ustawieniami serwera proxy. Emulator sprawdza tę zmienną podczas uruchamiania i automatycznie używa jej wartości, jeśli jest zdefiniowana.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.

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.