แอป Wear OS ที่ใช้มุมมองมาตรฐานจะได้รับประโยชน์จากระบบเร่งฮาร์ดแวร์โดยอัตโนมัติ การแสดงภาพกราฟิก แต่หน้าปัดมักมีการใช้งานโดยใช้ ทำให้ไม่มีการเร่งฮาร์ดแวร์โดยอัตโนมัติ
เหตุใดจึงควรใช้แคนวาสที่มีการเร่งฮาร์ดแวร์สำหรับหน้าปัดของคุณ
ในกรณีส่วนใหญ่ หน้าปัดของคุณจะแสดงผลที่อัตราเฟรมสูงขึ้นเมื่อใช้ แคนวาสที่มีการเร่งฮาร์ดแวร์ ภาพเคลื่อนไหวและการเปลี่ยนภาพในอัตราเฟรมที่สูงขึ้น มีลักษณะเรียบเนียนขึ้น เพื่อให้ประสบการณ์ของผู้ใช้ดีขึ้น
เมื่อใช้ Canvas ที่มีการเร่งฮาร์ดแวร์ คุณจะเข้าถึง UI เพิ่มเติมได้ด้วย ข้อมูลประสิทธิภาพของหน้าปัด ตัวอย่างเช่น คุณสามารถเข้าถึง ข้อมูลเฟรมโดยละเอียดที่อธิบายไว้ใน Measure UI ประสิทธิภาพ เมื่อคุณใช้ Canvas ที่เร่งการแสดงผลด้วยฮาร์ดแวร์
หน้าปัดของฉันใช้การเร่งฮาร์ดแวร์หรือไม่
คุณสามารถตรวจสอบว่าหน้าปัดของคุณใช้การเร่งฮาร์ดแวร์หรือไม่
โดยใช้ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์หรือ adb
ตรวจสอบโดยใช้ตัวเลือกสำหรับนักพัฒนาแอป
หากต้องการใช้ตัวเลือกสำหรับนักพัฒนาแอปเพื่อตรวจสอบว่าหน้าปัดของคุณใช้การเร่งฮาร์ดแวร์หรือไม่ ให้ทำตามขั้นตอนต่อไปนี้
- ในอุปกรณ์ Wear OS ให้ไปที่การตั้งค่า > ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์
เปิดใช้แก้ไขข้อบกพร่องในการทำโปรไฟล์ GPU
ตัวเลือกนี้จะวาดซ้อนทับบนพื้นผิวที่มองเห็นได้ โดยแสดง 1 ตำแหน่งต่อ 1 พื้นผิว เพื่อแสดงระยะเวลาที่ใช้ในการแสดงผล GPU แต่ละขั้น แพลตฟอร์ม
กลับไปที่หน้าปัดในอุปกรณ์
หากหน้าปัดใช้แคนวาสที่มีการเร่งฮาร์ดแวร์ คุณจะเห็นแถบใหม่ ซึ่งจะย้ายจากขวาไปซ้ายสำหรับเฟรมที่แสดงผลแต่ละเฟรมของหน้าปัด
ตรวจสอบโดยใช้ adb
หากต้องการใช้ adb
เพื่อตรวจสอบว่าหน้าปัดของคุณใช้การเร่งฮาร์ดแวร์หรือไม่
ให้ทำตามขั้นตอนต่อไปนี้
- ในอุปกรณ์ Wear OS ให้เปลี่ยนหน้าปัดเป็นหน้าปัดที่ต้องการ เพื่อทดสอบ
- ให้หน้าปัดทำงานเป็นเวลา 2-3 วินาทีในโหมดอินเทอร์แอกทีฟ
เรียกใช้คำสั่ง
adb
ต่อไปนี้เพื่อตรวจสอบว่าหน้าปัดของคุณใช้หรือไม่ การเร่งฮาร์ดแวร์:adb shell dumpsys gfxinfo [package-name]
หลังจากเรียกใช้คำสั่ง คุณจะได้รับเอาต์พุตในลักษณะนี้ ตัวอย่าง:
Applications Graphics Acceleration Info: Uptime: 2239933 Realtime: 13568751 ** Graphics info for pid 1100 [package-name] ** Stats since: 59875589194ns Total frames rendered: 1213 Janky frames: 0 (0.00%) 50th percentile: 7ms 90th percentile: 18ms 95th percentile: 25ms 99th percentile: 150ms Number Missed Vsync: 0 Number High input latency: 0 Number Slow UI thread: 0 Number Slow bitmap uploads: 0 Number Slow issue draw commands: 0 Number Frame deadline missed: 0 ...
ในเอาต์พุตตัวอย่างนี้ ให้สังเกตบรรทัดที่เขียนว่า Total frames rendered
โดยทั่วไป หากเอาต์พุตแสดงเฟรมทั้งหมดที่แสดงผลมากกว่า 0 ระบบจะประมวลผล
หน้าปัดใช้ผืนผ้าใบแบบเร่ง ไม่เช่นนั้น จำนวนเฟรมทั้งหมดที่แสดงผล
และข้อมูลเฟรมอื่นๆ ในรายงานตามปกติจะเป็น 0
แต่เนื่องจาก gfxinfo
เป็นเอาต์พุตสำหรับแพ็กเกจแบบเต็มของแอปคุณ คุณจึงอาจ
ดูข้อมูลเวลาที่ใช้ในการแสดงผลเฟรมบางอย่างจากสิ่งอื่นที่ไม่ใช่การเร่งความเร็วด้วยฮาร์ดแวร์
เช่น Activity
ที่แอปใช้สำหรับหน้าจอการกำหนดค่า ถึง
บอกความแตกต่าง ตรวจสอบให้แน่ใจว่าหน้าปัดมีเพียงพื้นผิวเดียวที่
แสดง แล้วเรียกใช้คำสั่ง adb shell dumpsys gfxinfo
อีกครั้งเพื่อตรวจสอบว่า
ค่าของ Total frames rendered
จะเพิ่มขึ้น
แนวทางปฏิบัติแนะนำ
ทำตามแนวทางปฏิบัติแนะนำเหล่านี้เพื่อให้มั่นใจได้ว่า ผู้ใช้
ยืดระยะเวลาการใช้งานแบตเตอรี่ให้ได้มากที่สุด
หากหน้าปัดมีภาพเคลื่อนไหวที่แสดงเป็นเวลานาน การใช้การเร่งฮาร์ดแวร์อาจ อายุการใช้งานแบตเตอรี่ของอุปกรณ์จะลดลงอย่างมาก ปัญหานี้อาจแย่ลงหาก หน้าปัดจะพยายามวาดในทุกเฟรม เพื่อหลีกเลี่ยงผลกระทบในแง่ลบ อย่าใช้ภาพเคลื่อนไหวที่ใช้เวลานานในหน้าปัดของคุณ ช่วงเวลานี้ ไม่ได้เจาะจงเฉพาะการใช้การเร่งฮาร์ดแวร์ แต่เป็นเพราะการใช้ การเร่งฮาร์ดแวร์จะเพิ่มจำนวนเฟรม ที่คุณสามารถวาดได้ ซึ่งเป็น มีความสำคัญยิ่งขึ้นตามมา ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำสำหรับ ภาพเคลื่อนไหว
ใช้การดำเนินการวาดภาพที่รองรับ
ระบบไม่รองรับการดำเนินการวาดบางอย่างเมื่อใช้การเร่งฮาร์ดแวร์
สำหรับข้อมูลเกี่ยวกับอุปกรณ์ที่รองรับ โปรดดูที่ฮาร์ดแวร์
การเร่งความเร็ว
หากคุณมีเส้นทางของโค้ดขนาดเล็กที่ใช้การดำเนินการที่ไม่ได้รับการสนับสนุน คุณสามารถสร้าง
แคนวาสที่หนุนหลังบิตแมป แล้ววาดบิตแมปลงในผืนผ้าใบของหน้าปัด
โดยใช้
canvas.drawBitmap()
รักษาความเข้ากันได้เมื่อใช้การเร่งฮาร์ดแวร์
การเร่งฮาร์ดแวร์พร้อมใช้งานในอุปกรณ์ Wear OS ที่ใช้ Android 9 (API
ระดับ 28) ขึ้นไป หากต้องการเลี่ยงการดำเนินการวาดที่เจาะจงในเวอร์ชันที่เก่ากว่า
อุปกรณ์ที่ไม่สามารถใช้งานการเร่งฮาร์ดแวร์ หรือการวาดที่ไม่มีการสนับสนุน
การดำเนินการใน Canvas ที่เร่งการแสดงผลด้วยฮาร์ดแวร์ คุณสามารถตรวจสอบ Canvas.isHardwareAccelerated()
เพื่อให้มีฟังก์ชันการทำงานอื่น
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- Dumpsys
- การแสดงผลช้า
- โหมดความเข้ากันได้ของอุปกรณ์