บันทึกร่องรอยด้วย Winscope

เรียกใช้ Winscope ในเครื่องหรือเข้าถึงจากเว็บเซิร์ฟเวอร์

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

หน้าจอรวบรวมร่องรอยจะแสดงเมื่อเปิด Winscope

การเชื่อมต่อของอุปกรณ์

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

หากต้องการเริ่มบันทึกร่องรอย ให้เลือกกลไกการเชื่อมต่ออุปกรณ์อย่างใดอย่างหนึ่งต่อไปนี้

การตั้งค่าพร็อกซีของ Winscope

ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่า Winscope Proxy

  1. ในส่วนรวบรวมร่องรอยในหน้าแรก ให้เลือก Winscope Proxy ในเมนูแบบเลื่อนลงเลือกประเภทการเชื่อมต่อ

    บันทึกร่องรอยโดยใช้ Winscope Proxy

    รูปที่ 1 บันทึกร่องรอยโดยใช้ Winscope Proxy

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

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. โปรดสังเกตโทเค็นพร็อกซีของ Winscope ที่แสดงในเทอร์มินัลหลังจากการดําเนินการ

  4. หลังจากเปิดพร็อกซี Winscope ADB Connect แล้ว หน้าจอจะเปลี่ยนดังนี้ หากต้องการสร้างการเชื่อมต่อครั้งแรกกับพร็อกซี ให้ป้อนโทเค็นพร็อกซีของ Winscope จากขั้นตอนที่ 3 แล้วคลิกเชื่อมต่อ

    เชื่อมต่อกับพร็อกซี Winscope

    รูปที่ 2 เชื่อมต่อกับ Winscope Proxy

การตั้งค่าพร็อกซีของอุปกรณ์เว็บ

ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าพร็อกซีของอุปกรณ์เว็บ

  1. ในส่วนรวบรวมร่องรอยในหน้าแรก ให้เลือกพร็อกซีของอุปกรณ์เว็บในเมนูแบบเลื่อนลงเลือกประเภทการเชื่อมต่อ

    บันทึกร่องรอยโดยใช้พร็อกซีอุปกรณ์เว็บ

    รูปที่ 3 บันทึกร่องรอยโดยใช้ Web Device Proxy

  2. หากไม่มีเว็บดีมานด์พร็อกซีเดมอนในเครื่อง ให้คลิกติดตั้งหรือเรียกใช้โปรแกรมติดตั้ง

  3. อนุมัติสิทธิ์เข้าถึงพร็อกซีอุปกรณ์บนเว็บของต้นทางผ่านกล่องโต้ตอบ

    ให้สิทธิ์เข้าถึง WDP ของต้นทาง

    รูปที่ 4 ให้สิทธิ์ต้นทาง

  4. อนุมัติการเข้าถึงสำหรับอุปกรณ์ใหม่แต่ละเครื่องเมื่อเชื่อมต่อกับอุปกรณ์เป็นครั้งแรก หากกล่องโต้ตอบไม่ปรากฏขึ้นโดยอัตโนมัติ ให้คลิกไอคอน lock_open ข้างอุปกรณ์

    wdp_unauth_device

    รูปที่ 5 ให้สิทธิ์อุปกรณ์

การติดตาม

ทำตามขั้นตอนต่อไปนี้เพื่อรวบรวมร่องรอย

  1. เมื่อเชื่อมต่อแล้ว หากต้องการเริ่มกระบวนการจับภาพ ให้เลือกเป้าหมายและกำหนดการตั้งค่า จากนั้นคลิกเริ่มการติดตามเพื่อเริ่มบันทึก

    รวบรวมการติดตามใน Winscope

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

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

    สิ้นสุดการติดตามใน Winscope

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

ตัวเลือกการติดตาม

ส่วนนี้จะอธิบายตัวเลือกสําหรับการติดตามแต่ละประเภท

การบันทึกหน้าจอ

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

SurfaceFlinger

  • ขนาดบัฟเฟอร์: ปรับขนาดบัฟเฟอร์แบบวงแหวนในหน่วยความจําสําหรับการติดตาม SurfaceFlinger บัฟเฟอร์ขนาดใหญ่จะช่วยให้รวบรวมข้อมูลได้มากขึ้น แต่จะใช้หน่วยความจํามากขึ้นด้วย

  • อินพุต: หากแพลตฟอร์มมีข้อมูลอินพุต ระบบจะติดตามข้อมูลเฉพาะของกรอบเวลาอินพุต

  • องค์ประกอบ: ติดตามประเภทองค์ประกอบและภูมิภาคที่มองเห็นได้

  • ข้อมูลเมตา: ติดตามข้อมูลเมตาเพิ่มเติมของแพลตฟอร์ม รวมถึงเลเยอร์ที่อยู่นอกหน้าจอ

  • HWC: ติดตามข้อมูลเมตาคอมโพเซอร์ฮาร์ดแวร์ที่ไม่มีโครงสร้างเพิ่มเติม

  • บัฟเฟอร์การติดตาม: กําหนดค่า SurfaceFlinger ให้ติดตามการเปลี่ยนแปลงบัฟเฟอร์ทั้งหมดบนแพลตฟอร์ม โดยค่าเริ่มต้น SurfaceFlinger จะติดตามสถานะใหม่เฉพาะเมื่อมีการเปลี่ยนแปลงเรขาคณิตเท่านั้น

  • จอแสดงผลเสมือนจริง: รวมเลเยอร์จอแสดงผลเสมือนจริงในการติดตาม

WindowManager

  • ขนาดบัฟเฟอร์: ปรับขนาดบัฟเฟอร์แบบวงแหวนในหน่วยความจําสําหรับการติดตาม WindowManager บัฟเฟอร์ขนาดใหญ่จะช่วยให้รวบรวมข้อมูลได้มากขึ้น แต่จะใช้หน่วยความจํามากขึ้นด้วย
  • ประเภทการติดตาม: กําหนดตัวเลือกความถี่ในการรวบรวมสถานะ

    • frame: ในโหมดนี้ WindowManager จะแสดงสถานะเดียวต่อเฟรม เพื่อให้มั่นใจว่าระบบจะบันทึกเฉพาะสถานะที่ถูกต้องของ WindowManager โหมดนี้มีโอเวอร์เฮดด้านประสิทธิภาพต่ำที่สุด
    • transaction: โหมดนี้จะบันทึกสถานะ WindowManager ทุกครั้งที่มีการทำธุรกรรม คุณสามารถทําธุรกรรมหลายรายการภายในเฟรมได้ ซึ่งช่วยให้แก้ไขข้อบกพร่องสถานะ WindowManager ระดับกลางระหว่างเฟรมได้ อย่างไรก็ตาม โหมดนี้จะมีค่าใช้จ่ายเพิ่มเติมด้านประสิทธิภาพสูงกว่าโหมดเฟรม
  • ระดับการติดตาม: กำหนดระดับการถอดเสียงของร่องรอย WindowManager ดังนี้

    • verbose: รวมข้อมูลการกำหนดค่าและหน้าต่างทั้งหมดสำหรับแต่ละหน้าต่าง โหมดนี้มีโอเวอร์เฮดด้านหน่วยความจําและประสิทธิภาพสูงสุด
    • debug: มีข้อมูลเกี่ยวกับหน้าต่างทั้งหมด แต่จะบันทึกเฉพาะการกำหนดค่าหน้าต่างหากมีการกำหนดค่าการลบล้างที่ขอ
    • สำคัญ: มีข้อมูลเดียวกับโหมดแก้ไขข้อบกพร่อง แต่จะมีเฉพาะหน้าต่างที่มองเห็นได้ โหมดนี้มีหน่วยความจําและโอเวอร์เฮดด้านประสิทธิภาพน้อยที่สุด

ข้อมูลไฟล์บันทึก

หากต้องการทำ Dump สถานะโดยใช้ Winscope ในส่วนรวบรวมการติดตามในหน้าแรก ให้เลือกแท็บ Dump แล้วคลิก Dump สถานะ

ดัมพ์สถานะใน Winscope

รูปที่ 8 ดัมพ์สถานะใน Winscope

การกําหนดค่าภาพหน้าจอ

Winscope อนุญาตให้ถ่ายภาพหน้าจอสำหรับจอแสดงผลหลายจอ เลือกจอแสดงผลจากเมนูเพื่อถ่ายภาพหน้าจอ หากไม่เลือก ระบบจะรวบรวมภาพหน้าจอของจอแสดงผลที่ใช้งานอยู่