A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release anziché aosp-main per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Puoi acquisire le tracce utilizzando Winscope per lo sviluppo e il debug locale.
Winscope utilizza adb, che supporta la connessione del dispositivo tramite USB o Wi-Fi.
La schermata Raccogli tracce viene visualizzata all'avvio di Winscope.
Connessione dispositivo
Puoi connettere i dispositivi in Winscope utilizzando
Winscope Proxy
o
Web Device Proxy.
Per impostazione predefinita, la home page di Winscope mostra l'interfaccia utente di configurazione della connessione del proxy Winscope.
Per iniziare a acquisire le tracce, scegli uno dei seguenti meccanismi di connessione del dispositivo.
Configurazione del proxy Winscope
Per configurare Winscope Proxy:
In Raccogli tracce nella home page, scegli Winscope Proxy nel menu a discesa Seleziona il tipo di connessione:
Figura 1. Acquisisci le tracce utilizzando Winscope Proxy.
Avvia il proxy Winscope ADB Connect per acquisire le tracce direttamente dal browser eseguendo il seguente comando:
Prendi nota del token proxy Winscope visualizzato sul terminale dopo l'esecuzione.
Dopo aver avviato il proxy Winscope ADB Connect, la schermata cambia come segue. Per stabilire la connessione iniziale al proxy, inserisci il
token del proxy Winscope del passaggio 3 e fai clic su Connetti.
Figura 2. Connettiti a Winscope Proxy.
Configurazione di Web Device Proxy
Per configurare il proxy del dispositivo web:
In Raccogli tracce nella home page, scegli Proxy dispositivo web nel menu a discesa Seleziona il tipo di connessione:
Figura 3. Acquisisci le tracce utilizzando il proxy del dispositivo web.
Se non hai il demone Web Device Proxy sulla tua macchina, fai clic su Installa o esegui il programma di installazione.
Approva l'accesso dell'origine a Web Device Proxy tramite la finestra di dialogo.
Figura 4. Autorizza l'origine.
Approva l'accesso per ogni nuovo dispositivo la prima volta che ti connetti.
Se la finestra di dialogo non viene visualizzata automaticamente, fai clic sull'icona lock_open accanto al dispositivo:
Figura 5. Autorizza il dispositivo.
Tracce
Per raccogliere le tracce:
Una volta connesso, per avviare la procedura di acquisizione, seleziona i target e configura le impostazioni. Poi fai clic su Avvia traccia per iniziare l'acquisizione:
Figura 6. Raccogli le tracce in Winscope.
Per interrompere l'acquisizione, fai clic su Termina traccia:
Figura 7. Termina la traccia in Winscope.
Opzioni di traccia
Questa sezione descrive le opzioni per ogni tipo di traccia.
Registrazione dello schermo
Con Winscope puoi registrare lo schermo di più display. Scegli una visualizzazione dal menu per registrare lo schermo. Se non effettui una selezione, Winscope registra per impostazione predefinita la visualizzazione attiva.
SurfaceFlinger
Dimensione buffer:regola la dimensione del buffer circolare in memoria per la traccia di SurfaceFlinger. Un buffer più grande consente di raccogliere più dati, ma aumenta l'utilizzo della memoria.
Input:se la superficie contiene dati di input, monitora le specifiche della finestra di input.
Composizione:traccia il tipo di composizione e la regione visibile.
Metadati:rileva metadati aggiuntivi della visualizzazione, inclusi i livelli fuori schermo.
HWC: traccia metadati aggiuntivi non strutturati del compositore hardware.
Traccia buffer:configura SurfaceFlinger per tracciare tutte le modifiche ai buffer sulla superficie. Per impostazione predefinita, SurfaceFlinger traccia un nuovo stato solo quando la geometria viene modificata.
Display virtuali:include i livelli di visualizzazione virtuali nella traccia.
WindowManager
Dimensione buffer:regola le dimensioni del buffer circolare in memoria per la traccia WindowManager. Un buffer più grande consente la raccolta di più dati, ma
aumenta l'utilizzo della memoria.
Tipo di monitoraggio:definisce le opzioni di frequenza per la raccolta degli stati:
frame:in questa modalità, WindowManager esegue il dump di un singolo stato per frame, garantendo che vengano acquisiti solo gli stati WindowManager validi. Questa modalità ha il minore overhead di rendimento.
transaction: questa modalità registra uno stato WindowManager ogni volta che viene eseguito il commit di una transazione. Puoi eseguire il commit di più transazioni all'interno di un frame, in modo da poter eseguire il debug degli stati intermedi di WindowManager durante un frame. Tuttavia, questa modalità ha un overhead di prestazioni più elevato rispetto alla modalità frame.
Livello di tracciamento:determina la modalità di visualizzazione delle tracce di WindowManager:
verbose:include tutte le finestre e le informazioni di configurazione per ogni
finestra. Questa modalità ha il maggiore overhead di memoria e prestazioni.
debug: include informazioni su tutte le finestre, ma registra solo la configurazione della finestra se contiene una configurazione di override richiesta.
critical: include le stesse informazioni della modalità di debug, ma solo le finestre visibili. Questa modalità ha il minore overhead di memoria e prestazioni.
Dump
Per eseguire un dump dello stato utilizzando Winscope, nella sezione Raccogli tracce della home page, selezionare la scheda Dump e fare clic su Dump stato:
Figura 8. Esegui il dump dello stato in Winscope.
Configurazione degli screenshot
Winscope consente di acquisire uno screenshot di più display. Scegli una visualizzazione dal menu di cui acquisire uno screenshot. Se non viene effettuata alcuna selezione, viene raccolto uno screenshot per il display attivo.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]