Hiệu ứng chuyển đổi shell

Việc ra mắt hiệu ứng chuyển đổi shell đã hợp nhất và hệ thống hoá phương thức chạy ảnh động trong hệ thống, cho phép truy xuất thông tin tập trung về ảnh động dự kiến sẽ thực thi.

Dấu vết chuyển đổi bao gồm dữ liệu về mọi quá trình chuyển đổi xảy ra trong trình bao WindowManager (WM), bắt nguồn từ cả máy chủ hệ thống và các phía của trình bao. Dấu vết này được bật vĩnh viễn trong Droidfood và tự động được nhúng vào báo cáo lỗi.

Để biết thêm thông tin về việc thu thập dấu vết, hãy xem phần Chuyển đổi Shell.

Trình xem Transitions của Winscope hiển thị thông tin này cho các dấu vết chuyển đổi chứa cả thông tin phía máy chủ và phía máy khách. Trình xem bao gồm một khung hiển thị nhật ký bảng chứa thông tin cấp cao về quá trình chuyển đổi ở bên trái và một khung hiển thị chi tiết cho từng quá trình chuyển đổi ở bên phải:

Phân tích dấu vết chuyển đổi shell

Hình 1. Phân tích dấu vết chuyển đổi shell.

Chế độ xem dạng bảng

Chế độ xem theo bảng chứa:

  • Id: Mã chuyển đổi chỉ được tạo cho mục đích gỡ lỗi.
  • Loại: Loại chuyển đổi, như được xác định trong Transitions.java
  • Thời gian gửi: Dấu thời gian mà quá trình chuyển đổi được gửi từ máy chủ đến shell để xử lý.
  • Thời gian gửi: Dấu thời gian khi hiệu ứng chuyển cảnh được gửi đến trình xử lý để bắt đầu phát.
  • Thời lượng: Thời gian chuyển đổi từ khi bắt đầu phát đến khi kết thúc.
  • Trạng thái: Nếu hiệu ứng chuyển cảnh là:
    • ĐÃ PHÁT:: Đã phát.
    • ABORTED: Bị huỷ trước khi phát. Bạn có thể huỷ một hiệu ứng chuyển đổi từ phía shell hoặc WM.
    • MERGED: Được trình xử lý hiệu ứng chuyển cảnh hợp nhất thành một hiệu ứng chuyển cảnh khác đang phát (trình xử lý quyết định cách xử lý hiệu ứng này).

Chế độ xem chi tiết

Ngoài thông tin chi tiết trong chế độ xem bảng, chế độ xem chi tiết về hiệu ứng chuyển cảnh trong phần HIỆU ỨNG CHUYỂN CẢNH ĐƯỢC CHỌN còn có:

  • handler: Trình xử lý chuyển đổi đã xử lý ảnh động này.
  • createTimeNs: Dấu thời gian mà quá trình chuyển đổi được tạo trên phía máy chủ WM.
  • finishTimeNs: Dấu thời gian khi phía máy chủ WM được thông báo rằng quá trình chuyển đổi đã hoàn tất ở phía shell.
  • endTransactionId: Giao dịch SurfaceFlinger cuối cùng có trong quá trình chuyển đổi này.
  • startTransactionId: Giao dịch SurfaceFlinger ban đầu có trong quá trình chuyển đổi này.
  • targets: Danh sách những người tham gia chuyển đổi.
  • type: Loại chuyển đổi, như được xác định trong Transitions.java

Mục tiêu

Mục tiêu là những phần tử liên quan đến quá trình chuyển đổi (thường là các hoạt động hoặc tác vụ). Đối với mỗi mục tiêu, chúng tôi ghi lại:

  • layerId: Lớp đang được tạo hiệu ứng (từ hệ phân cấp SurfaceFlinger).
  • mode: Loại ảnh động được thực hiện trên lớp này.
  • windowId: Cửa sổ đang được tạo ảnh động (từ hệ phân cấp WindowManager).
  • flags: Nhóm cờ mới đang được áp dụng cho lớp.