Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Uruchom Winscope lokalnie lub uzyskaj do niego dostęp z serwera WWW.
Możesz tworzyć ścieżki za pomocą Winscope do programowania lokalnego i debugowania.
Winscope używa adb, które obsługuje połączenie z urządzeniem przez USB lub Wi-Fi.
Po uruchomieniu Winscope wyświetla się ekran Zbieraj ślady.
Zwróć uwagę na token zastępczy Winscope wyświetlany w terminalu po wykonaniu.
Po uruchomieniu serwera proxy Winscope ADB Connect ekran zmieni się w ten sposób: Aby nawiązać pierwsze połączenie z serwerem proxy, wpisz token serwera proxy Winscope z kroku 3 i kliknij Połącz.
Rysunek 2. Połącz się z serwerem proxy Winscope.
Konfigurowanie serwera proxy urządzenia internetowego
Aby skonfigurować urządzenie internetowe:
Na stronie głównej w sekcji Zbieraj ślady w menu Wybierz typ połączenia kliknij Web Device Proxy (Pośrednik urządzenia internetowego):
Rysunek 3. Przechwyć ścieżki za pomocą serwera proxy urządzenia internetowego.
Jeśli na komputerze nie masz demona Web Device Proxy, kliknij Zainstaluj lub uruchom instalator.
Zatwierdź dostęp źródła do internetowego serwera proxy urządzenia w oknie dialogowym.
Rysunek 4. Autoryzuj punkt początkowy.
Zatwierdzaj dostęp do każdego nowego urządzenia przy pierwszym połączeniu.
Jeśli okno nie otworzy się automatycznie, kliknij ikonę lock_open obok urządzenia:
Rysunek 5. autoryzować urządzenie,
Ścieżki
Aby zebrać ślady:
Po nawiązaniu połączenia, aby rozpocząć proces przechwytywania, wybierz cele i skonfiguruj ustawienia. Następnie kliknij Rozpocznij śledzenie, aby rozpocząć nagrywanie:
Rysunek 6. Zbieraj ślady w Winscope.
Aby zatrzymać nagrywanie, kliknij Zakończ śledzenie:
Rysunek 7. Zakończ śledzenie w Winscope.
Opcje śledzenia
W tej sekcji opisujemy opcje dotyczące poszczególnych typów ścieżek.
Nagrywanie ekranu
Za pomocą Winscope możesz nagrywać ekrany wielu wyświetlaczy. Wybierz wyświetlacz z menu, aby nagrywać ekran. Jeśli nie wybierzesz opcji, Winscope domyślnie nagra aktywny ekran.
SurfaceFlinger
Rozmiar bufora: dostosowuje rozmiar pętli pamięci podręcznej dla śladu SurfaceFlinger. Większy bufor umożliwia zbieranie większej ilości danych, ale zwiększa wykorzystanie pamięci.
Wejście: jeśli powierzchnia zawiera dane wejściowe, śledzi szczegóły okna wejściowego.
Skład: śledzi typ kompozycji i widoczny obszar.
Metadane: śledzi dodatkowe metadane powierzchni, w tym warstwy poza ekranem.
HWC: śledzi dodatkowe nieuporządkowane metadane kompozytora sprzętowego.
Bufory śledzenia:konfiguruje SurfaceFlingera do śledzenia wszystkich zmian bufora na powierzchni. Domyślnie SurfaceFlinger śledzi nowy stan tylko wtedy, gdy geometria ulegnie zmianie.
Wyświetlacze wirtualne: zawiera w śladzie warstwy wirtualnego wyświetlacza.
WindowManager
Rozmiar bufora: dostosowuje rozmiar pierścieniowego bufora w pamięci dla ścieżki WindowManager. Większy bufor umożliwia zbieranie większej ilości danych, ale zwiększa wykorzystanie pamięci.
Typ śledzenia: określa opcje częstotliwości zbierania stanów:
frame: w tym trybie WindowManager wyrzuca pojedynczy stan na każdy frame, co zapewnia, że są rejestrowane tylko prawidłowe stany WindowManager. Ten tryb ma najmniejszy narzut na wydajność.
transaction: w tym trybie stan WindowManager jest zapisywany za każdym razem, gdy transakcja zostanie zatwierdzona. W ramach jednego ramki możesz zatwierdzać wiele transakcji, co umożliwia debugowanie pośrednich stanów WindowManager w trakcie ramki. Jednak ten tryb ma większą wydajność niż tryb ramki.
Poziom śledzenia: określa szczegółowość ścieżek WindowManager:
szczegółowy: zawiera informacje o wszystkich oknach i konfiguracji każdego okna. W tym trybie zużycie pamięci i obciążenie procesora są najwyższe.
debug: zawiera informacje o wszystkich oknach, ale rejestruje tylko konfigurację okna, jeśli zawiera ona żądaną konfigurację zastąpienia.
critical: zawiera te same informacje co tryb debugowania, ale obejmuje tylko widoczne okna. Ten tryb ma najmniejszy narzut na pamięć i wydajność.
Dumps
Aby utworzyć kopię stanu za pomocą Winscope, na stronie głównej w sekcji Zbieraj ścieżki kliknij kolejno karty Dump i Dump state:
Rysunek 8. Zrzut stanu w Winscope.
Konfiguracja zrzutów ekranu
Winscope umożliwia robienie zrzutów ekranu z wielu wyświetlaczy. Wybierz wyświetlacz z menu, aby zrobić zrzut ekranu. Jeśli nie wybierzesz żadnej opcji, zrzut ekranu zostanie zrobiony z aktywnego ekranu.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-27 UTC."],[],[],null,["# Capture traces with Winscope\n\n[Run Winscope](/docs/core/graphics/winscope/run) locally or access it\nfrom a web server.\n\nYou can capture traces using Winscope for local development and debugging.\nWinscope uses [adb](https://developer.android.com/tools/adb), which supports\ndevice connection over USB or Wi-Fi.\n\nThe **Collect Traces** screen is displayed on launching Winscope.\n\nDevice connection\n-----------------\n\nYou can connect devices in Winscope using\n[Winscope Proxy](#winscope-proxy-setup)\nor\n[Web Device Proxy](#web-device-proxy-setup).\nBy default, the Winscope homepage shows the **Winscope Proxy** connection setup\nUI.\n\nTo start capturing traces, choose one of the following device connection\nmechanisms.\n\n### Winscope Proxy setup\n\nFollow these steps to set up Winscope Proxy:\n\n1. Under **Collect Traces** on the homepage, choose **Winscope Proxy** in the\n **Select connection type** drop-down:\n\n **Figure 1.** Capture traces using Winscope Proxy.\n2. Launch the Winscope ADB Connect proxy to capture traces directly from your\n browser, by running the following command:\n\n python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py\n\n | **Note:** Python 3.10+ and adb are required.\n3. Note the Winscope proxy token displayed on the terminal after execution.\n\n4. After you launch the Winscope ADB Connect proxy, the screen changes as\n follows. To establish the initial connection to the proxy, input the\n Winscope proxy token from step 3 and click **Connect**.\n\n **Figure 2.** Connect to Winscope Proxy.\n\n### Web Device Proxy setup\n\nFollow these steps to set up Web Device Proxy:\n\n1. Under **Collect Traces** on the homepage, choose **Web Device Proxy** in the\n **Select connection type** drop-down:\n\n **Figure 3.** Capture traces using Web Device Proxy.\n2. If you don't have the Web Device Proxy daemon on your machine, click\n **Install** or run the\n [installer](https://tools.google.com/dlpage/android_web_device_proxy).\n\n | **Note:** Web Device Proxy is not yet supported on Mac.\n3. Approve origin access to Web Device Proxy through the dialog.\n\n **Figure 4.** Authorize origin.\n4. Approve access for each new device the first time you connect to the device.\n If the dialog does not automatically appear, click the `lock_open` icon next\n to the device:\n\n **Figure 5.** Authorize device.\n\nTraces\n------\n\nFollow these steps to collect traces:\n\n1. When connected, to initiate the capture process, select the targets and\n configure the settings. Then click **Start trace** to begin the capture:\n\n **Figure 6.** Collect traces in Winscope.\n2. To stop the capture, click **End trace**:\n\n **Figure 7.** End trace in Winscope.\n\nTrace options\n-------------\n\nThis section describes the options for each trace type.\n\n### Screen recording\n\nWith Winscope, you can record the screen of multiple displays. Choose a display\nfrom the menu to screen record. If you don't make a selection, Winscope records\nthe active display by default.\n| **Note:** Multi-display selection is available only with adb `screenrecord` v1.4 and higher, that is builds from September 2024 on. Single display selection is available for any version earlier than that.\n\n### SurfaceFlinger\n\n- **Buffer size:** Adjusts the size of the in-memory ring buffer for the\n SurfaceFlinger trace. A larger buffer enables the collection of more data\n but increases memory usage.\n\n | **Note:** Buffer size is deprecated starting in Android 15.\n- **Input:** If the surface contains input data, tracks the specifics of\n the input window.\n\n- **Composition:** Traces the composition type and visible region.\n\n- **Metadata:** Traces additional surface metadata, including offscreen\n layers.\n\n | **Warning:** Metadata is highly verbose and requires a large amount of memory.\n- **HWC:** Traces additional unstructured hardware composer metadata.\n\n | **Warning:** HWC is highly verbose and requires a large amount of memory.\n- **Trace buffers:** Configures SurfaceFlinger to trace all buffer changes on\n the surface. By default, SurfaceFlinger traces a new state only when the\n geometry is altered.\n\n- **Virtual displays:** Includes virtual display layers in the trace.\n\n### WindowManager\n\n- **Buffer size:** Adjusts the size of the in-memory ring buffer for the WindowManager trace. A larger buffer enables the collection of more data but increases memory usage.\n- **Tracing type:** Defines the frequency options for collecting states:\n\n - *frame:* In this mode, the WindowManager dumps a single state per frame, ensuring that only valid WindowManager states are captured. This mode has the lowest performance overhead.\n - *transaction:* This mode records a WindowManager state whenever a transaction is committed. You can commit multiple transactions within a frame, so this allows for debugging intermediate WindowManager states during a frame. However, this mode has a higher performance overhead compared to the frame mode.\n- **Tracing level:** Determines the verbosity of the WindowManager traces:\n\n - *verbose:* Includes all windows and configuration information for each window. This mode has the highest memory and performance overhead.\n - *debug:* Includes information about all windows, but logs only the window configuration if it contains a requested override configuration.\n - *critical:* Includes the same information as Debug mode, but includes only visible windows. This mode has the smallest memory and performance overhead.\n\nDumps\n-----\n\nTo take a state dump using Winscope, under **Collect Traces** on the homepage\nselect the **Dump** tab and then click **Dump state**:\n\n**Figure 8.** Dump state in Winscope.\n\n### Screenshot configuration\n\nWinscope allows taking a screenshot for multiple displays. Choose a display from\nthe menu to screenshot. If no selection is made, a screenshot is collected for\nthe active display."]]