ติดตามการเปลี่ยนหน้าต่างโดยใช้ Winscope

Winscope เป็นเครื่องมือเว็บที่ให้ผู้ใช้สามารถบันทึก เล่นซ้ำ และวิเคราะห์สถานะของบริการระบบต่างๆ ในระหว่างและหลังภาพเคลื่อนไหวและการเปลี่ยนภาพ Winscope บันทึกสถานะบริการระบบที่เกี่ยวข้องทั้งหมดลงในไฟล์การติดตาม เมื่อใช้ Winscope UI กับไฟล์การติดตาม คุณสามารถตรวจสอบสถานะของบริการเหล่านี้สำหรับเฟรมภาพเคลื่อนไหวแต่ละเฟรม ไม่ว่าจะมีหรือไม่มีการบันทึกหน้าจอ โดยการเล่นซ้ำ การก้าว และการดีบักผ่านการเปลี่ยนภาพ

บริการของระบบที่สร้างการติดตามที่สามารถโหลดลงใน Winscope มีดังนี้:

  • SurfaceFlinger
  • ตัวจัดการหน้าต่าง
  • WMShell
  • IME
  • ตัวเปิด

เรียกใช้โปรแกรมดูการติดตาม Winscope

การติดตาม Winscope เป็นส่วนหนึ่งของบริการบนแพลตฟอร์ม ส่วนนี้จะสรุปขั้นตอนที่จำเป็นในการดาวน์โหลด สร้าง และเรียกใช้ Winscope Trace Viewer

ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่าพีซีของคุณให้เรียกใช้ตัวติดตาม Winscope:

  1. ดาวน์โหลดแหล่งที่มาของ Android
  2. นำทางไปยังโฟลเดอร์ Winscope:

    cd development/tools/winscope
    
  3. ติดตั้งการพึ่งพาโดยใช้:

    npm install
    

    หากต้องการดูรายการคำสั่งที่ใช้ได้ ให้รัน: npm run

  4. สร้างเป้าหมายผลิตภัณฑ์และทดสอบทั้งหมดโดยใช้:

    npm run build:prod
    
  5. เรียกใช้ Winscope โดยใช้:

    npm run start
    

จับร่องรอย

คุณสามารถจับภาพการติดตามบน อุปกรณ์ ผ่าน Winscope หรือผ่านคำสั่ง Android Debug Bridge (adb)

จับร่องรอยบนอุปกรณ์

จับร่องรอยบนอุปกรณ์เพื่อรวบรวมข้อมูลเมื่อแจ้งจุดบกพร่องสำหรับปัญหาแอนิเมชั่น การติดตาม UI ทั้งหมดจะถูกบันทึกด้วยวิธีนี้ เนื่องจากไม่สามารถปรับแต่งการกำหนดค่าได้

บนอุปกรณ์ Android ของคุณ:

  1. เปิดใช้งานตัวเลือกสำหรับนักพัฒนา
  2. เลือก การติดตามระบบภายใต้ตัวเลือกนักพัฒนา
  3. เปิดใช้งาน การรวบรวมการติดตาม Winscope
  4. ภายใต้ เบ็ดเตล็ด :
    1. เปิดใช้งาน แนบการบันทึกไปยังรายงานข้อบกพร่อง
    2. เปิดใช้งาน การแสดงไทล์การตั้งค่าด่วน
  5. นำทางไปยังตำแหน่งที่คุณต้องการสร้างจุดบกพร่องอีกครั้ง
  6. หากต้องการเริ่มจับภาพ ให้เปิดการตั้งค่าด่วนแล้วเลือก บันทึกการติดตาม :

    quick_setting_winscope

    รูปที่ 1 เมนูการตั้งค่าด่วนพร้อม Record Trace

  7. ดำเนินการ เฉพาะขั้นตอนที่จำเป็น เพื่อสร้างจุดบกพร่องอีกครั้ง

  8. หากต้องการหยุดการบันทึก ให้เปิดการตั้งค่าด่วน และเลือก หยุดการติดตาม

  9. แชร์บันทึกที่บันทึกไว้โดยใช้ตัวเลือกใดตัวเลือกหนึ่งที่แสดงไว้ เช่น Gmail, ไดรฟ์ หรือ BetterBug

จับร่องรอยผ่าน Winscope

คุณสามารถบันทึกการติดตามโดยใช้ Winscope สำหรับการพัฒนาและการดีบักในเครื่อง Winscope ใช้ adb ซึ่งรองรับการเชื่อมต่ออุปกรณ์ผ่าน USB หรือ Wi-Fi

บนวินสโคป:

  1. ในหน้าจอ Collect Traces คลิก ADB Proxy :

    capture_traces_winscope

    รูปที่ 2 จับร่องรอยบน Winscope

  2. เปิดใช้พร็อกซี Winscope ADB Connect เพื่อบันทึกการติดตามโดยตรงจากเบราว์เซอร์ของคุณ

  3. รันคำสั่ง:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  4. เพื่อเริ่มการจับภาพ ในหน้าจอ Collect Traces ให้เลือกเป้าหมายและการกำหนดค่า และคลิก Start Trace :

    collect_traces_winscope

    รูปที่ 3 รวบรวมร่องรอยบน Winscope

  5. หากต้องการหยุดการจับภาพ คลิก สิ้นสุดการติดตาม :

    end_trace_winscope

    รูปที่ 4 สิ้นสุดการติดตามบน Winscope

ขณะที่เครื่องมืออัปโหลดการติดตามบน UI ของ Winscope ข้อความ การดึงข้อมูล และ การแยกวิเคราะห์ไฟล์ Proto จะปรากฏบนหน้าจอ

สร้างดัมพ์สถานะโดยใช้ Winscope

หากต้องการถ่ายโอนข้อมูลสถานะโดยใช้ Winscope บนหน้าจอ Collect Traces ให้เลือกแท็บ Dump จากนั้นคลิก Dump state :

dump-winscope

รูปที่ 5 สถานะการถ่ายโอนข้อมูลบน Winscope

จับร่องรอยผ่านคำสั่ง adb

รัน adb root ก่อนรันคำสั่ง adb shell สำหรับการติดตามแต่ละรายการต่อไปนี้ ที่ส่วนท้ายของการติดตาม ไฟล์การติดตามจะพร้อมใช้งานใน /data/misc/wmtrace หากต้องการคัดลอกไฟล์หรือไดเรกทอรีและไดเรกทอรีย่อยจากอุปกรณ์ โปรดดู คัดลอกไฟล์ไปยังและจากอุปกรณ์ ดู adb สำหรับข้อมูลเพิ่มเติม

ติดตาม WindowManager

หากต้องการบันทึกการติดตาม WindowManager:

  • เปิดใช้งานการติดตาม:

    adb shell wm tracing start
    
  • ปิดการใช้งานการติดตาม:

    adb shell wm tracing stop
    
  • บันทึกข้อมูลการบันทึกลงในไฟล์ขณะเรียกใช้การจับการติดตาม:

    adb shell wm tracing save-for-bugreport
    
  • บันทึกการติดตามหนึ่งครั้งต่อเฟรม:

    adb shell wm tracing frame
    
  • บันทึกแต่ละธุรกรรม:

    adb shell wm tracing transaction
    
  • ตั้งค่าขนาดบันทึกสูงสุด (เป็น KB):

    adb shell wm tracing size
    
  • สถานะการติดตามการพิมพ์:

    adb shell wm tracing status
    
  • ตั้งค่าระดับการบันทึกเป็น critical (เฉพาะหน้าต่างที่มองเห็นได้โดยมีข้อมูลลดลง) trim (หน้าต่างทั้งหมดที่มีข้อมูลลดลง) หรือ all (หน้าต่างและข้อมูลทั้งหมด):

    adb shell wm tracing level
    

โปรโตล็อก

คำสั่งต่อไปนี้ใช้สำหรับระบบ ProtoLog

ในกระบวนการ system_server :

  • เริ่ม ProtoLog:

    adb shell cmd window logging start
    
  • หยุด ProtoLog:

    adb shell cmd window logging stop
    
  • เปิดใช้งาน ProtoLog สำหรับกลุ่มบันทึกที่กำหนด:

    adb shell cmd window logging enable [group...]
    
  • ปิดการใช้งาน ProtoLog สำหรับกลุ่มบันทึกที่กำหนด:

    adb shell cmd window logging disable [group...]
    
  • เปิดใช้งานการบันทึก Logcat สำหรับกลุ่มบันทึกที่กำหนด:

    adb shell cmd window logging enable-text [group...]
    
  • ปิดใช้งานการบันทึก Logcat สำหรับกลุ่มบันทึกที่กำหนด:

    adb shell cmd window logging disable-text [group...]
    

ใน WMShell:

  • เริ่ม ProtoLog:

    adb shell dumpsys activity service SystemUIService WMShell
    

การติดตามการเปลี่ยนแปลง

คำสั่งต่อไปนี้ใช้สำหรับการติดตามการเปลี่ยนแปลง:

ในกระบวนการ system_server :

  • เริ่มการติดตาม:

    adb shell cmd window shell tracing start
    
  • หยุดการติดตาม:

    adb shell cmd window shell tracing stop
    
  • เริ่มต้นการติดตามใน WMShell:

    adb shell dumpsys activity service SystemUIService WMShell transitions tracing start
    
  • หยุดการติดตามใน WMShell:

    adb shell dumpsys activity service SystemUIService WMShell transitions tracing stop
    

ตัวแก้ไขวิธีการป้อนข้อมูล

คำสั่งต่อไปนี้ใช้สำหรับการติดตาม Input Method Editor (IME):

  • เริ่มการติดตาม IME สำหรับไคลเอนต์วิธีการป้อนข้อมูล (IM), บริการวิธีการป้อนข้อมูล (IMS) และบริการการจัดการวิธีการป้อนข้อมูล (IMMS):

    adb shell ime tracing start
    
  • เริ่มการติดตามไคลเอ็นต์ IME, IMS และ IMMS:

    adb shell ime tracing stop
    

ชั้น SurfaceFlinger

การติดตามเลเยอร์ SurfaceFlinger ใช้การติดตาม Perfetto ในการจับภาพ ดู การกำหนดค่าการติดตาม สำหรับข้อมูลการกำหนดค่า

ดูตัวอย่างการกำหนดค่าสำหรับการติดตามเลเยอร์ SurfaceFlinger ต่อไปนี้:

unique_session_name: "surfaceflinger_layers_active"
buffers: {
    size_kb: 63488
    fill_policy: RING_BUFFER
}
data_sources: {
    config {
        name: "android.surfaceflinger.layers"
        surfaceflinger_layers_config: {
            mode: MODE_ACTIVE
            trace_flags: TRACE_FLAG_INPUT
            trace_flags: TRACE_FLAG_COMPOSITION
            trace_flags: TRACE_FLAG_HWC
            trace_flags: TRACE_FLAG_BUFFERS
            trace_flags: TRACE_FLAG_VIRTUAL_DISPLAYS
        }
    }
}

ดูคำสั่งตัวอย่างต่อไปนี้เพื่อสร้างการติดตามสำหรับเลเยอร์ SurfaceFlinger:

adb shell -t perfetto \
    -c - --txt \
    -o /data/misc/perfetto-traces/trace \

ธุรกรรม SurfaceFlinger

การติดตามธุรกรรม SurfaceFlinger ใช้การติดตาม Perfetto ในการจับภาพ ดู การกำหนดค่าการติดตาม สำหรับข้อมูลการกำหนดค่า

ดูตัวอย่างต่อไปนี้ของการกำหนดค่า Perfetto สำหรับ การติดตามที่ใช้งาน SurfaceFlinger :

unique_session_name: "surfaceflinger_transactions_active"
buffers: {
    size_kb: 1024
    fill_policy: RING_BUFFER
}
data_sources: {
    config {
        name: "android.surfaceflinger.transactions"
        surfaceflinger_transactions_config: {
            mode: MODE_ACTIVE
        }
    }
}
write_into_file: true
file_write_period_ms: 100

ดูตัวอย่างการกำหนดค่า Perfetto สำหรับ การติดตามต่อเนื่องของ SurfaceFlinger ต่อไปนี้:

unique_session_name: "surfaceflinger_transactions_continuous"
buffers: {
    size_kb: 1024
    fill_policy: RING_BUFFER
}
data_sources: {
    config {
        name: "android.surfaceflinger.transactions"
        surfaceflinger_transactions_config: {
            mode: MODE_CONTINUOUS
        }
    }
}

ดูคำสั่งตัวอย่างต่อไปนี้เพื่อสร้างการติดตามสำหรับธุรกรรม SurfaceFlinger:

    adb shell perfetto \
    -c - --txt \
    -o /data/misc/perfetto-traces/trace \

สร้างดัมพ์สถานะโดยใช้ adb

Winscope อ่านสแนปช็อตของสถานะ WindowManager และ SurfaceFlinger จากรายงานข้อบกพร่อง รายงานข้อบกพร่องจะจัดเก็บสถานะเป็นไฟล์โปรโตแยกกันภายในโฟลเดอร์ proto หากต้องการสร้างดัมพ์สถานะโดยใช้ adb ให้รันคำสั่งต่อไปนี้

สำหรับ WindowManager:

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

สำหรับ SurfaceFlinger:

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

วิเคราะห์ร่องรอย

ในการแก้ไขข้อบกพร่องสถานะชั่วคราวและสถานะที่ไม่ถูกต้องซึ่งเป็นสาเหตุของปัญหาภาพเคลื่อนไหว Winscope จะรวมไฟล์การติดตามต่างๆ ให้การค้นหาและการแสดงภาพผ่านเฟรมและไทม์ไลน์ และนำเสนอข้อความ protobuf ในลักษณะที่สอดคล้องกัน การวิเคราะห์การติดตามใน Winscope ช่วยระบุเลเยอร์ เฟรม และสถานะของการเกิดจุดบกพร่องที่แน่นอน

ใช้วินสโคป

เมื่อคุณ บันทึกร่องรอยแล้ว ให้วิเคราะห์ร่องรอยบน Winscope:

  1. อัปโหลดร่องรอยที่บันทึกไว้โดยใช้แผงทางด้านขวา คุณสามารถลบการติดตามที่อัปโหลดหรืออัปโหลดการติดตามเพิ่มเติมได้

    upload_traces_winscope

    รูปที่ 6. อัพโหลดการติดตามบน Winscope

  2. คลิก ดูการติดตาม เพื่อดูภาพการติดตามที่อัปโหลด แท็บสำหรับแต่ละการติดตามจะปรากฏที่แผงด้านบนของหน้าต่าง หากไฟล์ที่อัปโหลดมีร่องรอยที่เกี่ยวข้อง มุมมองแบบลอยของการติดตามการบันทึกหน้าจอจะถูกซ้อนทับบนหน้าจอ

    view_traces_winscope

    รูปที่ 7 ดูร่องรอยบน Winscope

    ใช้ UI ที่แผงด้านบนสุดของหน้าต่างเพื่อเปลี่ยนชื่อแก้ไข_ชื่อ และดาวน์โหลดการติดตามที่คุณอัปโหลด ดาวน์โหลด_ติดตาม หรือจะอัพโหลดอันใหม่

  3. นำทางไปตามร่องรอยเมื่อเวลาผ่านไปโดยใช้เครื่องมือตัวเลื่อนเวลาที่แผงด้านล่างของหน้าต่าง สำหรับการนำทางในเวลาเพิ่มเติม ให้ใช้คุณสมบัติต่อไปนี้ ดังแสดงในรูปที่ 8:

    • หากต้องการนำทางไปยังเวลาหรือเหตุการณ์ใดเหตุการณ์หนึ่ง ให้ใช้เคอร์เซอร์ (แถบเลื่อนเวลา) หรือทางซ้ายarrow_left_time และถูกต้องarrow_right_time ลูกศรในกล่องแสดงเวลา (มุมซ้ายล่าง) หรือลูกศรซ้ายและขวาบนแป้นพิมพ์ของคุณ
    • หากต้องการแสดงร่องรอยรหัสสีที่เลือกบนไทม์ไลน์ ให้ใช้เมนูแบบเลื่อนลง (ด้านซ้ายของแถบเลื่อนเวลา) ตามค่าเริ่มต้น การสืบค้นกลับสามรายการสุดท้ายที่ดูโดยใช้แท็บการติดตามจะแสดงบนไทม์ไลน์
    • หากต้องการดูร่องรอยที่อัปโหลดทั้งหมดอย่างละเอียด ให้ใช้การซูมเข้าซูม_in_time หรือซูมออก ซูมออก_เวลา เครื่องมือ (ใต้แถบเลื่อนเวลา) หรือเลื่อนบนแป้นพิมพ์ ใช้ปุ่มรีเซ็ตเพื่อรีเซ็ตระดับการซูม
    • หากต้องการขยายมุมมองการกระจายการติดตามในช่วงเวลาหนึ่ง ให้คลิกลูกศรขึ้นarrow_up_time (มุมขวาล่าง).

    time_nav_winscope

    รูปที่ 8 การนำทางเวลาบน Winscope

    ในมุมมองแบบขยาย (รูปที่ 9) ให้เลือกและซูมเข้าในกรอบเวลาที่ต้องการเพื่อการตรวจสอบที่ดีขึ้น:

    expand_time_winscope

    รูปที่ 9. ไทม์ไลน์ที่ขยายบน Winscope

  4. หากต้องการตรวจสอบร่องรอย คุณสามารถดูสถานะอุปกรณ์ด้วยการบันทึกหน้าจอได้ หากต้องการตรวจสอบการติดตามเฉพาะ ให้คลิกแท็บการติดตามที่เกี่ยวข้องที่แผงด้านบนของเครื่องมือ

    • สำหรับการติดตาม Surface Flinger แผงสามแผงจะแสดงมุมมองที่แตกต่างกันของการติดตามในช่วงเวลาที่กำหนด ดังแสดงในรูปที่ 10:sf_trace

      รูปที่ 10 การติดตาม Surface Flinger บน Winscope

      • มุมมอง เลเยอร์ : มุมมอง 3 มิติของเลเยอร์ในการซ้อนทับแบบสี่เหลี่ยม องค์ประกอบ UI ต่อไปนี้จะปรับสี่เหลี่ยมเพื่อแสดงองค์ประกอบกราฟิกในแง่ของตำแหน่ง ขนาด การแปลง และลำดับ z:

        • แถบเลื่อน การหมุน (ซ้ายบนของมุมมองเลเยอร์) จะหมุนสี่เหลี่ยมที่มีเลเยอร์เพื่อดูในมุมที่เลือก
        • แถบเลื่อน ระยะห่าง (ด้านบนขวาของมุมมองเลเยอร์) ปรับระยะห่างระหว่างเลเยอร์เพื่อสร้างมุมมองคอมโพสิตที่เลือก
        • เครื่องมือซูม (ด้านบนขวาของมุมมองเลเยอร์) ซูมเข้าซูม_in_time และซูมออก ซูมออก_เวลา ลงสู่ชั้นต่างๆ เพื่อการตรวจสอบที่ดีขึ้น
        • ปุ่มรีเซ็ตรีเซ็ต_sf (ด้านบนขวาของมุมมองเลเยอร์) คืนค่าการตั้งค่ากล้องเป็นมุมมองดั้งเดิม
        • ลากสี่เหลี่ยมเพื่อให้ซูมได้ดีขึ้น
      • มุมมอง ลำดับชั้น : ลำดับชั้นแบบเต็มของเลเยอร์

        • เมื่อเลือก แล้ว เฉพาะที่มองเห็นได้ (ด้านบนขวาของมุมมองลำดับชั้น) จะซ่อนเลเยอร์ที่มองไม่เห็นจากลำดับชั้นเพื่อช่วยให้เห็นภาพองค์ประกอบบนหน้าจอ
        • แบบเรียบ (ด้านบนขวาของมุมมองลำดับชั้น) เมื่อเลือก จะแสดงลำดับชั้นเป็นรายการเลเยอร์แบบเรียบๆ
        • แสดงความแตกต่าง (ซ้ายบนของมุมมองลำดับชั้น) จะถูกเลือกเฉพาะเมื่อมีการเปลี่ยนสถานะ เมื่อเลือก เครื่องมือจะเปรียบเทียบสถานะปัจจุบันกับสถานะก่อนหน้า องค์ประกอบใหม่จะถูกไฮไลต์ด้วยสีเขียว องค์ประกอบที่ถูกลบจะถูกไฮไลต์ด้วยสีแดง และองค์ประกอบที่แก้ไขจะถูกไฮไลต์ด้วยสีน้ำเงิน
      • มุมมอง คุณสมบัติ : คุณสมบัติของเลเยอร์ที่เลือก แผงด้านบนของมุมมอง คุณสมบัติ มีข้อมูลเกี่ยวกับคุณสมบัติหลักเท่านั้น เช่น การมองเห็น เรขาคณิต และ บัฟเฟอร์ แผงด้านล่างของมุมมอง คุณสมบัติ ประกอบด้วย Proto Dump ของคุณสมบัติทั้งหมด

        • กล่องกา เครื่องหมายแสดงความแตกต่าง (ด้านซ้ายบนของมุมมองคุณสมบัติ) จะทำงานเหมือนกับในมุมมอง ลำดับชั้น
        • แสดงค่าเริ่มต้น (ซ้ายบนของมุมมองคุณสมบัติ) เมื่อเลือก จะแสดงค่าโปรโตเริ่มต้นบน Proto Dump ตามค่าเริ่มต้น ค่าเหล่านี้จะไม่แสดงอยู่ใน Proto Dump ค่าโปรโตเริ่มต้นจะนำมาจากคำนิยามฟิลด์โปรโต หากฟิลด์โปรโตไม่ได้ตั้งค่าเริ่มต้นที่ไม่เป็นค่าว่าง ค่าโปรโตเริ่มต้นที่แสดงคือ:
          • สตริง: Null
          • ตัวเลข: 0
          • ค่าบูลีน: เท็จ
          • วัตถุ: Null

      การเลือกระหว่างมุมมองทั้งสามและการบันทึกหน้าจอจะซิงโครไนซ์ กล่าวคือ การติดตามทั้งหมดจะอัปเดตพร้อมกันเมื่อคุณนำทางไปยังจุดเวลาอื่น หากต้องการดูคุณสมบัติของเลเยอร์ ให้เลือกเลเยอร์โดยคลิกในมุมมองลำดับชั้น หรือคลิกสี่เหลี่ยมตามลำดับในมุมมองคุณสมบัติ สี่เหลี่ยมสีม่วงแสดงว่ามีการติดตามมุมมองแนบอยู่กับเลเยอร์นี้ เมื่อดับเบิลคลิกเลเยอร์สีม่วง UI จะนำทางเพื่อเปลี่ยนไปยังแท็บการติดตามมุมมองที่เกี่ยวข้อง

    • สำหรับการติดตาม Window Manager สามพาเนลจะแสดงมุมมองที่แตกต่างกันของการติดตามในช่วงเวลาที่กำหนด ดังแสดงในรูปที่ 11:

      • มุมมอง Windows : มุมมอง 3 มิติของเลเยอร์
      • มุมมอง ลำดับชั้น : ลำดับชั้นแบบเต็มของเลเยอร์
      • มุมมอง คุณสมบัติ ประกอบด้วย Proto Dump ของคุณสมบัติทั้งหมด

      การเลือกระหว่างมุมมองทั้งสามและการบันทึกหน้าจอจะซิงโครไนซ์ กล่าวคือ การติดตามทั้งหมดจะอัปเดตพร้อมกันเมื่อคุณนำทางไปยังจุดเวลาอื่น

      wm_trace

      รูปที่ 11 การติดตาม Window Manager บน Winscope

    • สำหรับการติดตาม ธุรกรรม ธุรกรรม ระหว่าง Surface Flinger และ Window Manager จะแสดงในรูปแบบตารางซึ่งสามารถค้นหาได้ด้วยรหัสที่แสดง ประเภท และข้อความ พร้อมด้วยมุมมองคุณสมบัติที่แสดงโปรโตดัมพ์ การเลือกระหว่างสองมุมมองและการบันทึกหน้าจอจะซิงโครไนซ์:

      transaction_trace

      รูปที่ 12 การติดตามธุรกรรมบน Winscope

    • สำหรับการติดตาม ProtoLog ข้อมูลจะถูกนำเสนอในรูปแบบตาราง ซึ่งสามารถค้นหาได้ด้วยแท็ก ไฟล์ต้นฉบับ และข้อความ:

      protolog_trace

      รูปที่ 13 การติดตาม ProtoLog บน Winscope

    • สำหรับการติดตาม การเปลี่ยน ผ่าน รายการการเปลี่ยนผ่านพร้อมรหัส ประเภท เวลาที่ส่ง ระยะเวลา และสถานะจะแสดงพร้อมกับคุณสมบัติของการเปลี่ยนที่เลือก:

      transitions_trace

      รูปที่ 14 การติดตามการเปลี่ยนภาพบน Winscope