Việc giới thiệu các hiệu ứng chuyển đổi vỏ đã hợp nhất và mã 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 thành phần hiển thị WindowManager (WM), bắt nguồn từ cả phía máy chủ hệ thống và thành phần hiển thị. 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 vỏ.
Trình xem chuyển đổi 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 chế độ xem nhật ký bảng chứa thông tin tổng quan về hiệu ứng chuyển đổi ở bên trái và chế độ xem chi tiết cho từng hiệu ứng chuyển đổi ở bên phải:
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 để gỡ lỗi.
- Loại: Loại chuyển đổi, như được xác định trong
Transitions.java
- Send Time (Thời gian gửi): Dấu thời gian 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 quá trình chuyển đổi được gửi đến trình xử lý để bắt đầu phát.
- Thời lượng: Thời gian chuyển đổi từ lúc bắt đầu phát đến khi kết thúc.
- Trạng thái: Nếu quá trình chuyển đổi là:
- PLAYED:: Đã phát.
- ABORTED (HUỶ): Đã huỷ trước khi phát. Bạn có thể huỷ một quá trình chuyển đổi từ phía shell hoặc WM.
- MERGED (ĐÃ HỢP NHẤT): Được trình xử lý chuyển đổi hợp nhất vào một số chuyển đổi khác đang phát (trình xử lý quyết định cách xử lý việc này).
Chế độ xem chi tiết
Ngoài thông tin chi tiết trên chế độ xem theo bảng, chế độ xem chi tiết về hiệu ứng chuyển đổi trong mục SELECTED TRANSITION (Hiệu ứng chuyển đổi đã chọn) bao gồm:
handler
: Trình xử lý chuyển đổi đã xử lý ảnh động này.createTimeNs
: Dấu thời gian tạo chuyển đổi ở 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 đã chạy xong ở 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 người tham gia chuyển đổi.type
: Loại chuyển đổi, như được xác định trongTransitions.java
Mục tiêu
Mục tiêu là các phần tử liên quan đến quá trình chuyển đổi (thường là các hoạt động hoặc nhiệm vụ). Đối với mỗi mục tiêu, chúng tôi ghi lại:
layerId
: Lớp đang tạo ảnh độ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 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.