ประสิทธิภาพของ Jetpack Compose ใน Wear OS

ประสิทธิภาพใน Wear OS เป็นสิ่งที่แอปต้องพิจารณาเป็นอย่างยิ่ง เนื่องจากอุปกรณ์ Wear OS หลายรุ่นมีทรัพยากร CPU และ GPU ที่จำกัดเมื่อเทียบกับอุปกรณ์เคลื่อนที่ขนาดใหญ่ เมื่อมีการเปิดตัวภาพเคลื่อนไหวที่สมบูรณ์ยิ่งขึ้นและเอฟเฟกต์แบบไดนามิกใน Material 3 Expressive คุณควรตรวจสอบและปรับปรุงประสิทธิภาพของเวิร์กโฟลว์หลัก ของแอป

ใช้คู่มือประสิทธิภาพของ Jetpack Compose เพื่อกำหนดค่าและพัฒนาแอป ให้มีประสิทธิภาพสูงสุดโดยใช้ Jetpack Compose เอกสารนี้จะเน้นเทคนิคบางอย่างที่อธิบายไว้ในคำแนะนำดังกล่าว

สร้างและปฏิบัติตามกลยุทธ์การวัดประสิทธิภาพเพื่อตรวจสอบว่าเทคนิคเหล่านี้ทํางานได้ตามที่คาดไว้สําหรับแอปของคุณ

เทคนิคการปรับปรุงประสิทธิภาพที่สำคัญ

เริ่มต้นด้วยเครื่องมือประเภทประสิทธิภาพที่มีประสิทธิภาพมากที่สุด ได้แก่ โปรไฟล์พื้นฐาน (รวมถึงโปรไฟล์เริ่มต้น) และเครื่องมือเพิ่มประสิทธิภาพโค้ด R8

อัปเดตทรัพยากร Dependency ของ Compose เป็นเวอร์ชัน 1.8 ขึ้นไป ซึ่งมี ฟีเจอร์ใหม่ที่สำคัญหลายอย่างและปรับปรุงความเสถียรโดยรวมของ ไลบรารี ดูวิธีการอัปเดตได้ในวิธีการในการประกาศทรัพยากร Dependency ดูข้อมูลเพิ่มเติมได้ในบล็อกเกี่ยวกับการเปิดตัวเวอร์ชัน 1.8 และการพูดคุยใน I/O เกี่ยวกับมีอะไรใหม่ใน Compose

โปรไฟล์พื้นฐาน

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

ไลบรารี Jetpack Compose แต่ละรายการจะมาพร้อมกับกฎการสร้างโปรไฟล์ของตัวเอง เมื่อแอป ขึ้นอยู่กับไลบรารี กฎโปรไฟล์ของไลบรารีจะผสานโดยอัตโนมัติและ เผยแพร่พร้อมกับ APK ของแอปเพื่อการคอมไพล์ล่วงหน้า

ยืนยันโปรไฟล์พื้นฐานโดยใช้เทคนิคต่อไปนี้

  • ใช้การทดสอบมาโครเบนช์มาร์ก
  • ใช้คำสั่ง ADB ที่เฉพาะเจาะจงเพื่อตรวจสอบสถานะการกำหนดค่าโปรไฟล์ของแอป ขั้นตอนสำหรับเทคนิคทั้ง 2 อย่างนี้อธิบายไว้ในคู่มือการวัดและตรวจสอบประสิทธิภาพ

โปรไฟล์สตาร์ทอัพ

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

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

หากต้องการเริ่มต้นใช้งาน โปรดอ่านสร้างโปรไฟล์สตาร์ทอัป

R8

ใช้คอมไพเลอร์ R8 เพื่อลดขนาดและเพิ่มประสิทธิภาพแอป R8 จะนำโค้ดและ ทรัพยากรที่ไม่ได้ใช้ออก เขียนโค้ดใหม่เพื่อเพิ่มประสิทธิภาพรันไทม์ และอื่นๆ

ในคำแนะนำภาพรวมการปรับปรุงประสิทธิภาพ ให้อ่านข้อควรพิจารณาสำหรับ R8 ซึ่งรวมถึงขั้นตอนสำคัญในการนำทรัพยากรที่ไม่ได้ใช้ออก

การวัดและการตรวจสอบประสิทธิภาพ

ดูข้อมูลเกี่ยวกับกลยุทธ์การวัดประสิทธิภาพทั่วไปใน Android ได้ที่ภาพรวมของการวัดประสิทธิภาพแอป ส่วนนี้จะอธิบายเทคนิคบางอย่างที่กล่าวถึงในเอกสารประกอบนั้น

เลือกตัวแปรบิลด์สำหรับการวัด

แม้ว่าโหมดแก้ไขข้อบกพร่องจะมีประโยชน์ในการระบุปัญหาหลายอย่าง แต่ก็มีผลกระทบด้านประสิทธิภาพอย่างมาก ไม่ได้ใช้โปรไฟล์พื้นฐาน และอาจทำให้ระบุปัญหาในโค้ดที่อาจส่งผลต่อประสิทธิภาพได้ยาก

หากต้องการทำความเข้าใจประสิทธิภาพของแอปอย่างถูกต้อง ให้เรียกใช้แอปในโหมดรีลีส

สรุปผลลัพธ์สุดท้ายเกี่ยวกับประสิทธิภาพจากการทดสอบที่ดำเนินการกับแอป ที่ทำงานด้วยตัวเลือกบิลด์รุ่นที่เผยแพร่และในอุปกรณ์จริงเท่านั้น

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

ตรวจสอบโปรไฟล์พื้นฐานของแอป

เริ่มต้นด้วยการตรวจสอบสถานะของโปรไฟล์

adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME

หากสถานะไม่ใช่ status=speed-profile แสดงว่ายังไม่ได้ใช้กฎโปรไฟล์ เพื่อเพิ่มประสิทธิภาพแอป

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

adb shell cmd package bg-dexopt-job

จากนั้นเรียกใช้คำสั่งก่อนหน้าอีกครั้งเพื่อยืนยันว่าสถานะเป็น speed-profile

สําหรับกรณีที่การเพิ่มประสิทธิภาพเกิดขึ้นเมื่อติดตั้ง โปรดดูหัวข้อโหลดโปรไฟล์พื้นฐานด้านข้าง

UI Automator API

UI Automator API จะทำให้การโต้ตอบเป็นแบบอัตโนมัติโดยใช้โปรแกรม ใช้ API นี้ เพื่อเปรียบเทียบองค์ประกอบ UI ที่แยกกันเมื่อตรวจสอบเส้นทางของผู้ใช้เพื่อหา การเพิ่มประสิทธิภาพที่อาจเกิดขึ้น

การทดสอบมาโครเบนช์มาร์ก

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

ดูตัวอย่างการใช้มาโครเบนช์มาร์กเพื่อตรวจสอบประสิทธิภาพของ โปรไฟล์พื้นฐานได้ในตัวอย่างประสิทธิภาพใน GitHub

ไลบรารี JankStats

ใช้ไลบรารี JankStats เพื่อติดตามและวิเคราะห์ปัญหาด้านประสิทธิภาพใน แอปพลิเคชัน

ดูตัวอย่างได้ในตัวอย่าง JankStats บน GitHub

การติดตามของระบบ

ใช้ฟีเจอร์การติดตามระบบใน Android Studio เพื่อตรวจสอบและวินิจฉัยเวลาในการตอบสนองในเส้นทางของผู้ใช้ที่อาจมีปัญหา ด้วยประเภทภาพเคลื่อนไหวใหม่ที่เปิดตัวโดย Material 3 Expressive ข้อมูลนี้จะช่วยให้คุณยืนยันเนื้อหา ของโปรไฟล์พื้นฐาน และระบุความไม่มีประสิทธิภาพที่อาจเกิดขึ้นในตรรกะ ของโค้ดได้

เครื่องมือเพิ่มเติม

นอกจากเครื่องมือปรับปรุงประสิทธิภาพแล้ว คุณยังใช้เครื่องมืออื่นๆ เพื่อเพิ่มประสิทธิภาพการทำงานและเวิร์กโฟลว์ได้ด้วย

เครื่องมือเพิ่มประสิทธิภาพของ Android Studio

Android Studio มีเครื่องมือหลายอย่างที่จะช่วยลดเวลาที่คุณ ใช้ในการระบุการปรับปรุงประสิทธิภาพ

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

เรียกใช้การทดสอบประสิทธิภาพขั้นสุดท้ายทั้งหมดในชุดอุปกรณ์ Wear OS จริง ที่แสดงฐานผู้ใช้เป้าหมายของคุณอย่างถูกต้อง

ซึ่งมีความสำคัญอย่างยิ่งเมื่อย้ายข้อมูลไปยัง Material 3 Expressive ซึ่ง จะนำฟีเจอร์ต่างๆ เช่น แบบอักษรแบบยืดหยุ่นและการเปลี่ยนรูปร่างมายังแอป

หากคุณกำลังย้ายข้อมูลจาก View โปรดดูคู่มือการย้ายข้อมูลและ แนวทางปฏิบัติแนะนำสำหรับประสิทธิภาพของ Jetpack Compose เพื่อยืนยันว่า UI ของแอป มีประสิทธิภาพเมื่อใช้ Jetpack Compose

ทรัพยากรอื่นๆ

หากต้องการติดตามข่าวสารล่าสุดเกี่ยวกับประสิทธิภาพของ Android โปรดดูข่าวสารและวิดีโอล่าสุดในคู่มือประสิทธิภาพของแอป