Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Theo dõi chuyển đổi cửa sổ

WinScope cung cấp cơ sở hạ tầng và công cụ để ghi và phân tích trạng thái WindowManager và SurfaceFlinger trong và sau khi chuyển đổi cửa sổ. WinScope ghi lại tất cả các trạng thái dịch vụ hệ thống thích hợp vào một tệp theo dõi, bạn có thể sử dụng tệp này để phát lại và thực hiện từng bước chuyển đổi.

Ghi lại dấu vết

Ghi lại dấu vết thông qua Cài đặt nhanh hoặc adb trên các thiết bị chạy bản dựng userdebug hoặc eng.

Cài đặt nhanh

Để ghi lại dấu vết từ Cài đặt nhanh :

  1. Bật tùy chọn nhà phát triển .
  2. Đi tới Tùy chọn nhà phát triển > Ô nhà phát triển cài đặt nhanh .
  3. Bật WinScope Trace .
  4. Mở Cài đặt nhanh .
  5. Nhấn vào Winscope Trace để bật tính năng theo dõi.
  6. Chạy chuyển đổi cửa sổ trên thiết bị.
  7. Sau khi hoàn tất, hãy mở Cài đặt nhanh và chạm vào Winscope Trace để tắt tính năng theo dõi.

Các dấu vết được ghi vào /data/misc/wmtrace/wm_trace.pb/data/misc/wmtrace/layers_trace.pb . Các dấu vết cũng được đưa vào báo cáo lỗi.

adb

Khi chụp dấu vết thông qua adb , hãy chụp dấu vết WindowManager và SurfaceFlinger một cách riêng biệt.

Dấu vết WindowManager

Để chụp dấu vết WindowManager:

  1. Bật theo dõi:
    adb shell cmd window tracing start
  2. Vô hiệu hóa theo dõi:
    adb shell cmd window tracing stop
  3. Lấy tệp theo dõi:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

Bạn có thể tùy chọn thay đổi cấu hình nhật ký mặc định của các cài đặt khác nhau cho dấu vết WindowManager:

  • Đặt tần suất nhật ký (cho giao dịch hoặc khung):
    adb shell cmd window tracing [frame | transaction]
  • Định cấu hình mức chi tiết cho các mục nhập nhật ký:
    adb shell cmd window tracing level [all | trim | critical]
  • Đặt kích thước bộ đệm tối đa (tính bằng KB):
    adb shell cmd window tracing size size-value
  • Kết xuất trạng thái bộ đệm, mức nhật ký, dung lượng còn lại và số phần tử:
    adb shell cmd window tracing status

Dấu vết SurfaceFlinger

Để ghi lại dấu vết SurfaceFlinger:

  1. Bật theo dõi:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. Vô hiệu hóa theo dõi:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. Lấy hồ sơ theo dõi:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

Bạn có thể tùy chọn thay đổi cấu hình nhật ký mặc định của các cài đặt khác nhau cho dấu vết SurfaceFlinger:

  • Đặt kích thước bộ đệm tối đa (tính bằng KB):
    adb shell su root service call SurfaceFlinger 1029 i32 size-value
  • Định cấu hình mức chi tiết cho các mục nhật ký:
    adb shell su root service call SurfaceFlinger 1033 i32 flags

Tạo bãi thải trạng thái

WinScope đọc ảnh chụp nhanh trạng thái WindowManager và SurfaceFlinger từ các báo cáo lỗi. Các báo cáo lỗi lưu trữ các trạng thái dưới dạng tệp proto riêng biệt bên trong thư mục proto . Để tạo kết xuất trạng thái bằng cách sử dụng adb , hãy chạy các lệnh sau.

WindowManager

adb exec-out dumpsys window --proto > window_dump.pb

SurfaceFlinger

adb exec-out dumpsys SurfaceFlinger --proto > sf_dump.pb

Phân tích dấu vết

Để phân tích tệp theo dõi, hãy sử dụng ứng dụng web WinScope. Xây dựng ứng dụng có thể từ nguồn hoặc mở ứng dụng từ thư mục dựng sẵn.

  1. Tải xuống các tạo tác dựng sẵn từ kho nguồn Android:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. Mở phần tạo tác đã tải xuống trong trình duyệt web.
  3. Sau khi WinScope mở, chọn MỞ TỆP để tải tệp theo dõi.

Sử dụng WinScope

Sau khi mở tệp dấu vết trong WinScope, bạn có thể phân tích dấu vết theo một số cách.

Ảnh chụp màn hình WinScope
Hình 1. Phân tích dấu vết trong WinScope
  • Dòng thời gian - Hiển thị chuỗi sự kiện trong dấu vết. Sử dụng các phím mũi tên hoặc nhấp vào từng mục nhập để điều hướng qua dòng thời gian.
  • Màn hình - Cung cấp hình ảnh hiển thị của mọi cửa sổ hiển thị trên màn hình. Bấm vào một cửa sổ để chọn cửa sổ nguồn trong hệ thống phân cấp.
  • Hệ thống phân cấp - Đại diện cho từng cửa sổ mà hệ thống đã biết. Một số cửa sổ không chứa bộ đệm, nhưng tồn tại để thiết lập các chính sách trên con của cửa sổ. Các cửa sổ hiển thị được đánh dấu bằng biểu tượng V
  • Thuộc tính - Hiển thị thông tin trạng thái cho mục nhập đã chọn trong hệ thống phân cấp.