Ghi lại dấu vết bằng Winscope

Chạy Winscope cục bộ hoặc truy cập vào Winscope từ một máy chủ web.

Bạn có thể ghi lại dấu vết bằng Winscope để phát triển và gỡ lỗi cục bộ. Winscope sử dụng adb, hỗ trợ kết nối thiết bị qua USB hoặc Wi-Fi.

Khi bạn chạy Winscope, màn hình Collect Traces (Thu thập dấu vết) sẽ xuất hiện.

Kết nối thiết bị

Bạn có thể kết nối các thiết bị trong Winscope bằng Winscope Proxy hoặc Web Device Proxy. Theo mặc định, trang chủ Winscope sẽ hiển thị giao diện người dùng thiết lập kết nối Winscope Proxy.

Để bắt đầu ghi lại dấu vết, hãy chọn một trong các cơ chế kết nối thiết bị sau.

Thiết lập Winscope Proxy

Làm theo các bước sau để thiết lập Winscope Proxy:

  1. Trong phần Collect Traces (Thu thập dấu vết) trên trang chủ, hãy chọn Winscope Proxy (Winscope Proxy) trong trình đơn Select connection type (Chọn loại kết nối):

    Ghi lại dấu vết bằng Winscope Proxy

    Hình 1. Ghi lại dấu vết bằng Winscope Proxy.

  2. Khởi chạy proxy Winscope ADB Connect để ghi lại dấu vết ngay từ trình duyệt bằng cách chạy lệnh sau:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. Lưu ý mã thông báo proxy Winscope xuất hiện trên thiết bị đầu cuối sau khi thực thi.

  4. Sau khi bạn chạy proxy Winscope ADB Connect, màn hình sẽ thay đổi như sau. Để thiết lập kết nối ban đầu với proxy, hãy nhập mã thông báo proxy Winscope ở bước 3 rồi nhấp vào Kết nối.

    Kết nối với Winscope Proxy

    Hình 2. Kết nối với Winscope Proxy.

Thiết lập Web Device Proxy

Hãy làm theo các bước sau để thiết lập Web Device Proxy:

  1. Trong phần Collect Traces (Thu thập dấu vết) trên trang chủ, hãy chọn Web Device Proxy (Web Device Proxy) trong trình đơn Select connection type (Chọn loại kết nối):

    Ghi lại dấu vết bằng Web Device Proxy

    Hình 3. Ghi lại dấu vết bằng Web Device Proxy.

  2. Nếu bạn không có trình nền Web Device Proxy trên máy, hãy nhấp vào Install (Cài đặt) hoặc chạy trình cài đặt.

  3. Phê duyệt quyền truy cập của nguồn gốc vào Web Device Proxy thông qua hộp thoại.

    Cho phép nguồn gốc truy cập vào WDP

    Hình 4. Uỷ quyền cho nguồn gốc.

  4. Phê duyệt quyền truy cập cho từng thiết bị mới vào lần đầu tiên bạn kết nối với thiết bị đó. Nếu hộp thoại không tự động xuất hiện, hãy nhấp vào biểu tượng lock_open bên cạnh thiết bị:

    wdp_unauth_device

    Hình 5. Uỷ quyền cho thiết bị.

Traces

Hãy làm theo các bước sau để thu thập dấu vết:

  1. Khi kết nối, để bắt đầu quá trình ghi lại, hãy chọn các mục tiêu và định cấu hình chế độ cài đặt. Sau đó, hãy nhấp vào Bắt đầu theo dõi để bắt đầu ghi lại:

    Thu thập dấu vết trong Winscope

    Hình 6. Thu thập dấu vết trong Winscope.

  2. Để dừng quá trình ghi lại, hãy nhấp vào End trace (Kết thúc dấu vết):

    Kết thúc dấu vết trong Winscope

    Hình 7. Kết thúc dấu vết trong Winscope.

Các tuỳ chọn về dấu vết

Phần này mô tả các lựa chọn cho từng loại dấu vết.

Ghi màn hình

Với Winscope, bạn có thể ghi lại màn hình của nhiều màn hình. Chọn một màn hình trong trình đơn để ghi lại màn hình. Nếu bạn không chọn, Winscope sẽ ghi lại màn hình đang hoạt động theo mặc định.

SurfaceFlinger

  • Kích thước vùng đệm: Điều chỉnh kích thước của vùng đệm vòng trong bộ nhớ cho dấu vết SurfaceFlinger. Vùng đệm lớn hơn cho phép thu thập nhiều dữ liệu hơn nhưng làm tăng mức sử dụng bộ nhớ.

  • Đầu vào: Nếu bề mặt chứa dữ liệu đầu vào, hãy theo dõi thông tin cụ thể về cửa sổ đầu vào.

  • Thành phần: Theo dõi loại thành phần và khu vực hiển thị.

  • Siêu dữ liệu: Theo dõi siêu dữ liệu bổ sung của nền tảng, bao gồm cả các lớp ngoài màn hình.

  • HWC: Theo dõi siêu dữ liệu bổ sung của trình kết hợp phần cứng không có cấu trúc.

  • Vùng đệm theo dõi: Định cấu hình SurfaceFlinger để theo dõi tất cả các thay đổi về vùng đệm trên bề mặt. Theo mặc định, SurfaceFlinger chỉ theo dõi trạng thái mới khi hình học bị thay đổi.

  • Màn hình ảo: Bao gồm các lớp màn hình ảo trong dấu vết.

WindowManager

  • Dung lượng bộ nhớ đệm: Điều chỉnh kích thước của vùng đệm vòng trong bộ nhớ cho dấu vết WindowManager. Vùng đệm lớn hơn cho phép thu thập nhiều dữ liệu hơn nhưng làm tăng mức sử dụng bộ nhớ.
  • Loại theo dõi: Xác định các lựa chọn về tần suất thu thập trạng thái:

    • frame:Ở chế độ này, WindowManager sẽ kết xuất một trạng thái duy nhất cho mỗi khung hình, đảm bảo rằng chỉ những trạng thái WindowManager hợp lệ mới được ghi lại. Chế độ này có mức hao tổn hiệu suất thấp nhất.
    • transaction: Chế độ này ghi lại trạng thái WindowManager bất cứ khi nào một giao dịch được thực hiện. Bạn có thể thực hiện nhiều giao dịch trong một khung hình, nhờ đó cho phép gỡ lỗi các trạng thái WindowManager trung gian trong một khung hình. Tuy nhiên, chế độ này có hiệu suất cao hơn so với chế độ khung hình.
  • Cấp độ theo dõi: Xác định mức độ chi tiết của các dấu vết WindowManager:

    • verbose: Bao gồm tất cả thông tin về cửa sổ và cấu hình cho từng cửa sổ. Chế độ này có mức hao tổn hiệu suất và bộ nhớ cao nhất.
    • debug: Bao gồm thông tin về tất cả các cửa sổ, nhưng chỉ ghi nhật ký cấu hình cửa sổ nếu cửa sổ đó chứa cấu hình ghi đè được yêu cầu.
    • critical: Bao gồm thông tin tương tự như chế độ Gỡ lỗi, nhưng chỉ bao gồm các cửa sổ hiển thị. Chế độ này có mức hao tổn bộ nhớ và hiệu suất nhỏ nhất.

Kết xuất

Để lấy tệp kết xuất trạng thái bằng Winscope, trong phần Collect Traces (Thu thập dấu vết) trên trang chủ, hãy chọn thẻ Dump (Kết xuất), rồi nhấp vào Dump state (Kết xuất trạng thái):

Thu thập nhật ký hệ thống trong Winscope

Hình 8. Thu thập nhật ký hệ thống trong Winscope.

Cấu hình ảnh chụp màn hình

Winscope cho phép chụp ảnh màn hình cho nhiều màn hình. Chọn một màn hình trong trình đơn để chụp ảnh màn hình. Nếu bạn không chọn, hệ thống sẽ thu thập ảnh chụp màn hình cho màn hình đang hoạt động.