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

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

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

เมื่อเปิด Winscope หน้าจอรวบรวมการติดตามจะปรากฏขึ้น

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

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

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

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

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

  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. ในส่วนรวบรวมการติดตามของหน้าแรก ให้เลือกพร็อกซีอุปกรณ์เว็บ จากเมนูเลือกประเภทการเชื่อมต่อ

    บันทึกการติดตามโดยใช้ Web Device Proxy

    รูปที่ 3 บันทึกการติดตามโดยใช้ Web Device Proxy

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

  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 บัฟเฟอร์ที่ใหญ่ขึ้นจะช่วยให้รวบรวมข้อมูลได้มากขึ้น แต่จะใช้หน่วยความจำมากขึ้นด้วย
  • ประเภทการติดตาม: กำหนดตัวเลือกความถี่สำหรับการรวบรวมสถานะ

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

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

การดัมพ์

หากต้องการดัมพ์สถานะโดยใช้ Winscope ให้ไปที่ส่วนรวบรวมการติดตามในหน้าแรก เลือกแท็บดัมพ์ แล้วคลิกดัมพ์สถานะ

ดัมพ์สเตทใน Winscope

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

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

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