ประสิทธิภาพใน Wear OS เป็นสิ่งที่ต้องพิจารณาสำหรับแอป เนื่องจากอุปกรณ์ Wear OS หลายเครื่องมีทรัพยากร CPU และ GPU ที่จำกัดเมื่อเทียบกับอุปกรณ์เคลื่อนที่ขนาดใหญ่ เมื่อมีการเปิดตัวภาพเคลื่อนไหวที่สมบูรณ์ยิ่งขึ้นและเอฟเฟกต์แบบไดนามิกใน Material 3 Expressive คุณควรตรวจสอบและปรับปรุงประสิทธิภาพของเวิร์กโฟลว์หลัก ของแอป
ใช้คู่มือประสิทธิภาพของ Jetpack Compose เพื่อกำหนดค่าและพัฒนาแอป ให้มีประสิทธิภาพสูงสุดโดยใช้ Jetpack Compose เอกสารนี้จะเน้นเทคนิคบางอย่างที่อธิบายไว้ในเอกสารดังกล่าว
นอกจากนี้ ให้สร้างและปฏิบัติตามกลยุทธ์การวัดประสิทธิภาพเพื่อตรวจสอบว่าเทคนิคในเอกสารนี้ทํางานได้ตามที่คาดไว้สําหรับแอปของคุณ
เทคนิคการปรับปรุงประสิทธิภาพที่สำคัญ
เริ่มต้นด้วยเครื่องมือประเภทประสิทธิภาพที่มีผลลัพธ์มากที่สุด ได้แก่ โปรไฟล์พื้นฐาน (รวมถึงโปรไฟล์การเริ่มต้น) และเครื่องมือเพิ่มประสิทธิภาพโค้ด R8
ก่อนเริ่มต้นใช้งาน เราขอแนะนำให้อัปเดตการอ้างอิง Compose เป็นเวอร์ชัน 1.8 เป็นอย่างน้อย ซึ่งมีการเปิดตัวฟีเจอร์ใหม่ที่สำคัญหลายอย่าง และปรับปรุงความเสถียรโดยรวมของไลบรารี ดูวิธีการ ในการประกาศการขึ้นต่อกันเพื่อดูวิธีอัปเดต และดูข้อมูลเพิ่มเติมได้ที่บล็อกเกี่ยวกับการเปิดตัวเวอร์ชัน 1.8 และ มีอะไรใหม่ใน Compose ที่พูดในงาน I/O
โปรไฟล์พื้นฐาน
ใช้โปรไฟล์พื้นฐานเพื่อปรับปรุงประสิทธิภาพของแอป จัดกลุ่ม คลาสและเมธอดที่แสดงเวิร์กโฟลว์หลักของแอป ซึ่งระบบ สามารถคอมไพล์ล่วงหน้าได้โดยใช้โปรไฟล์พื้นฐาน ซึ่งจะช่วยลดเวลาเริ่มต้น ลดเฟรมที่กระตุก และปรับปรุงประสิทธิภาพเพิ่มเติม
ไลบรารี 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 เพื่อเปรียบเทียบ UI แต่ละส่วนเมื่อตรวจสอบเส้นทางของผู้ใช้เพื่อหาการเพิ่มประสิทธิภาพที่อาจเกิดขึ้น
โดยจะทำงานด้วยการโต้ตอบ UI แบบอัตโนมัติโดยใช้โปรแกรม
การทดสอบ Macrobenchmark
Macrobenchmark จะทดสอบกรณีการใช้งานที่ใหญ่ขึ้นของแอป โดยเฉพาะการเริ่มต้นแอปและการจัดการ UI ที่ซับซ้อน ดูคู่มือการติดตั้งใช้งานเพื่อเริ่มต้นใช้งาน
ดูตัวอย่างการใช้ Macrobenchmark เพื่อตรวจสอบประสิทธิภาพของ Baseline Profile ได้ที่ตัวอย่างประสิทธิภาพใน GitHub
ไลบรารี JankStats
ใช้ไลบรารี JankStats เพื่อติดตามและวิเคราะห์ปัญหาด้านประสิทธิภาพใน แอปพลิเคชัน
ดูตัวอย่างได้ในตัวอย่าง JankStats บน GitHub
การติดตามของระบบ
ประเภทภาพเคลื่อนไหวใหม่ที่เปิดตัวใน Material 3 Expressive ช่วยให้คุณ ใช้ฟีเจอร์การติดตามระบบใน Android Studio เพื่อตรวจสอบและวินิจฉัย เวลาในการตอบสนองในเส้นทางของผู้ใช้ที่อาจมีปัญหาได้ ข้อมูลนี้จะช่วยให้คุณ ยืนยันเนื้อหาของโปรไฟล์พื้นฐาน และตรวจสอบตรรกะของโค้ด เพื่อหาจุดที่อาจไม่มีประสิทธิภาพได้
เครื่องมือเพิ่มเติม
นอกจากเครื่องมือปรับปรุงประสิทธิภาพแล้ว นักพัฒนาแอปยังใช้เครื่องมืออื่นๆ เพื่อเพิ่มประสิทธิภาพการทำงานและเวิร์กโฟลว์ได้ด้วย
เครื่องมือเพิ่มประสิทธิภาพของ Android Studio
Android Studio มีเครื่องมือหลายอย่างที่ช่วยลดเวลาที่คุณใช้ในการหาวิธีปรับปรุงประสิทธิภาพ
ตัวอย่างเช่น การใช้เครื่องมืออย่าง Live Edit และ Composable Previews จะช่วยให้คุณระบุ UI ที่กระตุกพร้อมกับพื้นที่ที่เกี่ยวข้องในโค้ดของแอป เพื่อปรับปรุงประสิทธิภาพได้
เรียกใช้การทดสอบประสิทธิภาพขั้นสุดท้ายทั้งหมดในชุดอุปกรณ์ Wear OS จริง ที่แสดงฐานผู้ใช้เป้าหมายของคุณอย่างถูกต้อง
ซึ่งมีความสำคัญอย่างยิ่งเมื่อย้ายข้อมูลไปยัง Material 3 Expressive ซึ่ง จะนำฟีเจอร์ต่างๆ เช่น แบบอักษรแบบยืดหยุ่นและการเปลี่ยนรูปร่างมายังแอป
หากคุณกำลังย้ายข้อมูลจาก View โปรดดูคู่มือการย้ายข้อมูลและ แนวทางปฏิบัติแนะนำสำหรับประสิทธิภาพของ Jetpack Compose เพื่อยืนยันว่า UI ของแอป มีประสิทธิภาพเมื่อใช้ Jetpack Compose
ทรัพยากรอื่นๆ
หากต้องการติดตามข่าวสารล่าสุดเกี่ยวกับประสิทธิภาพของ Android โปรดดูข่าวสารและวิดีโอล่าสุดในคู่มือประสิทธิภาพของแอป