การเปิดตัวการเปลี่ยนเชลล์ได้รวมและประมวลผลวิธีการ เรียกใช้ภาพเคลื่อนไหวภายในระบบ ซึ่งช่วยให้สามารถดึงข้อมูลส่วนกลาง เกี่ยวกับการเคลื่อนไหวที่กำหนดไว้สำหรับการดำเนินการ
การติดตามการเปลี่ยนภาพมีข้อมูลเกี่ยวกับการเปลี่ยนภาพทุกรายการภายในเชลล์ WindowManager (WM) จากทั้งเซิร์ฟเวอร์ระบบและเชลล์ Droidfood จะเปิดใช้การติดตามนี้อย่างถาวร และฝังไว้ในรายงานข้อบกพร่องโดยอัตโนมัติ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการรวบรวมการติดตามได้ที่การเปลี่ยนเชลล์
โปรแกรมดูการเปลี่ยนภาพของ Winscope จะแสดงข้อมูลนี้สําหรับการติดตามการเปลี่ยนภาพ ที่มีทั้งข้อมูลฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ โปรแกรมดูประกอบด้วย มุมมองบันทึกตารางทางด้านซ้าย ซึ่งแสดงข้อมูลการเปลี่ยนระดับสูง และ มุมมองแบบละเอียดทางด้านขวาสำหรับการเปลี่ยนแต่ละรายการ
รูปที่ 1 การวิเคราะห์การติดตามการเปลี่ยนเชลล์
มุมมองตาราง
มุมมองตารางประกอบด้วยข้อมูลต่อไปนี้
- รหัส: รหัสการเปลี่ยนสถานะที่สร้างขึ้นเพื่อการแก้ไขข้อบกพร่องเท่านั้น
- ประเภท: ประเภทการเปลี่ยนตามที่กำหนดไว้ใน
Transitions.java
- เวลาส่ง: การประทับเวลาที่ส่งการเปลี่ยนสถานะจากเซิร์ฟเวอร์ไปยังเชลล์ เพื่อจัดการ
- เวลาส่ง: การประทับเวลาเมื่อส่งทรานซิชันไปยัง ตัวแฮนเดิลเพื่อเริ่มเล่น
- ระยะเวลา: เวลาที่ใช้ในการเปลี่ยนจากเริ่มเล่นจนจบ
- สถานะ: หากการเปลี่ยนผ่านมีสถานะดังนี้
- เล่นแล้ว:: เล่นแล้ว
- ABORTED: ยกเลิกก่อนเล่น คุณยกเลิกการเปลี่ยนฉากได้จากเชลล์หรือฝั่ง WM
- ผสาน: ผสานโดยตัวแฮนเดิลการเปลี่ยนฉากเข้ากับการเปลี่ยนฉากอื่นที่กำลังเล่นอยู่ (ตัวแฮนเดิลจะกำหนดวิธีจัดการการเปลี่ยนฉากนี้)
มุมมองโดยละเอียด
นอกจากรายละเอียดในมุมมองตารางแล้ว มุมมองการเปลี่ยนผ่านโดยละเอียด ในส่วนการเปลี่ยนผ่านที่เลือกยังมีข้อมูลต่อไปนี้
handler
: ตัวแฮนเดิลการเปลี่ยนที่จัดการภาพเคลื่อนไหวนี้createTimeNs
: การประทับเวลาที่สร้างทรานซิชันในฝั่งเซิร์ฟเวอร์ WMfinishTimeNs
: การประทับเวลาเมื่อระบบจะแจ้งให้ฝั่งเซิร์ฟเวอร์ของ WM ทราบว่าการเปลี่ยนผ่านทำงานเสร็จแล้วในฝั่งเชลล์endTransactionId
: ธุรกรรม SurfaceFlinger สุดท้ายที่รวมอยู่ในการเปลี่ยนภาพนี้startTransactionId
: ธุรกรรม SurfaceFlinger เริ่มต้นรวมอยู่ในการเปลี่ยนผ่านนี้targets
: รายชื่อผู้เข้าร่วมการเปลี่ยนผ่านtype
: ประเภทการเปลี่ยน ตามที่กำหนดไว้ในTransitions.java
เป้าหมาย
เป้าหมายคือองค์ประกอบที่เกี่ยวข้องกับการเปลี่ยนผ่าน ซึ่งโดยปกติจะเป็นกิจกรรมหรือ งาน ระบบจะบันทึกข้อมูลต่อไปนี้สำหรับแต่ละเป้าหมาย
layerId
: เลเยอร์ที่กำลังเคลื่อนไหว (จากลำดับชั้น SurfaceFlinger)mode
: ประเภทภาพเคลื่อนไหวที่ดำเนินการในเลเยอร์นี้windowId
: หน้าต่างที่กำลังเคลื่อนไหว (จากลำดับชั้นของ WindowManager)flags
: ชุดใหม่ของฟีเจอร์ที่ใช้กับเลเยอร์