A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
É possível capturar rastros usando o Winscope para desenvolvimento e depuração locais.
O Winscope usa o adb, que oferece suporte
à conexão do dispositivo por USB ou Wi-Fi.
A tela Collect Traces é exibida ao iniciar o Winscope.
Conexão do dispositivo
É possível conectar dispositivos no Winscope usando o
Proxy do Winscope
ou o
Proxy do dispositivo da Web.
Por padrão, a página inicial do Winscope mostra a IU de configuração de conexão do Winscope Proxy.
Para começar a capturar rastros, escolha um dos seguintes mecanismos de conexão de
dispositivo.
Configuração do proxy do Winscope
Siga estas etapas para configurar o Proxy do Winscope:
Em Collect Traces na página inicial, escolha Winscope Proxy no menu suspenso Select connection type:
Figura 1. Capture rastros usando o Proxy do Winscope.
Inicie o proxy do ADB Connect do Winscope para capturar rastros diretamente do
navegador executando o seguinte comando:
Observe o token de proxy do Winscope exibido no terminal após a execução.
Depois de iniciar o proxy do ADB Connect do Winscope, a tela muda da seguinte
forma. Para estabelecer a conexão inicial com o proxy, insira o
token do proxy do Winscope da etapa 3 e clique em Conectar.
Figura 2. Conecte-se ao proxy do Winscope.
Configuração do proxy do dispositivo da Web
Siga estas etapas para configurar o proxy de dispositivo da Web:
Em Collect Traces na página inicial, escolha Web Device Proxy no menu suspenso Select connection type:
Figura 3. Capture rastros usando o proxy de dispositivo da Web.
Se você não tiver o daemon do proxy do dispositivo da Web na sua máquina, clique em
Install ou execute o
instalador.
Aprovar o acesso de origem ao Proxy de dispositivo da Web pela caixa de diálogo.
Figura 4. Autorizar a origem.
Aprovar o acesso a cada novo dispositivo na primeira vez que você se conectar a ele.
Se a caixa de diálogo não aparecer automaticamente, clique no ícone lock_open ao lado
do dispositivo:
Figura 5. Autorizar o dispositivo.
Rastreamentos
Siga estas etapas para coletar rastros:
Quando conectado, para iniciar o processo de captura, selecione os alvos e
configure as configurações. Em seguida, clique em Iniciar trace para começar a captura:
Figura 6. Coletar rastros no Winscope.
Para interromper a captura, clique em Encerrar rastreamento:
Figura 7. Encerrar o rastreamento no Winscope.
Opções de rastreamento
Esta seção descreve as opções para cada tipo de rastreamento.
Gravação de tela
Com o Winscope, você pode gravar a tela de várias telas. Escolha uma tela
no menu para gravar a tela. Se você não fizer uma seleção, o Winscope vai gravar
a tela ativa por padrão.
SurfaceFlinger
Tamanho do buffer:ajusta o tamanho do buffer do anel na memória para o
traço do SurfaceFlinger. Um buffer maior permite a coleta de mais dados,
mas aumenta o uso da memória.
Entrada:se a plataforma contém dados de entrada, rastreia as especificidades da
janela de entrada.
Composição:rastreia o tipo de composição e a região visível.
Metadados:rastreia metadados de superfície adicionais, incluindo camadas
fora da tela.
HWC:rastreia outros metadados não estruturados do compositor de hardware.
Trace buffers:configura o SurfaceFlinger para rastrear todas as mudanças de buffer na
superfície. Por padrão, o SurfaceFlinger rastreia um novo estado somente quando a
geometria é alterada.
Exibições virtuais:inclui camadas de exibição virtuais no trace.
WindowManager
Tamanho do buffer:ajusta o tamanho do buffer do anel na memória para o
rastreamento do WindowManager. Um buffer maior permite a coleta de mais dados, mas
aumenta o uso da memória.
Tipo de rastreamento:define as opções de frequência para coletar estados:
frame:nesse modo, o WindowManager descarta um único estado por
frame, garantindo que apenas estados válidos do WindowManager sejam capturados. Esse
modo tem a menor sobrecarga de desempenho.
transaction:esse modo registra um estado do WindowManager sempre que uma
transação é confirmada. É possível confirmar várias transações em um
frame, o que permite depurar estados intermediários do WindowManager
durante um frame. No entanto, esse modo tem uma sobrecarga de desempenho
maior em comparação com o modo de frame.
Nível de rastreamento:determina o nível de verbosidade dos rastros do WindowManager:
verbose:inclui todas as janelas e informações de configuração de cada
janela. Esse modo tem o maior overhead de memória e desempenho.
depurar:inclui informações sobre todas as janelas, mas registra apenas a
configuração da janela se ela contiver uma configuração de substituição solicitada.
Crítico:inclui as mesmas informações do modo de depuração, mas apenas janelas visíveis. Esse modo tem a menor sobrecarga de memória e
desempenho.
Despejos
Para fazer um despejo de estado usando o Winscope, em Collect Traces na página inicial,
selecione a guia Dump e clique em Dump state:
Figura 8. Estado de despejo no Winscope.
Configuração de captura de tela
O Winscope permite fazer uma captura de tela de várias telas. Escolha uma tela do
menu para fazer uma captura de tela. Se nenhuma seleção for feita, uma captura de tela será coletada para
a tela ativa.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]