กิจกรรมและโปรแกรม

เพิ่มประสิทธิภาพอย่างเต็มที่: สรุปสัปดาห์แห่งการเน้นย้ำด้านประสิทธิภาพ

ใช้เวลาอ่าน 3 นาที

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

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

ใช้เครื่องมือเพิ่มประสิทธิภาพ R8 เพื่อเพิ่มความเร็วให้แอป

การเปลี่ยนแปลงที่ใช้ความพยายามน้อยที่สุดแต่ให้ผลลัพธ์มากที่สุดคือการเปิดใช้เครื่องมือเพิ่มประสิทธิภาพ R8 อย่างเต็มรูปแบบ เครื่องมือนี้ไม่เพียงแต่ลดขนาดแอปเท่านั้น แต่ยังทำการเพิ่มประสิทธิภาพโปรแกรมทั้งหมดอย่างละเอียดเพื่อเขียนโค้ดใหม่ทั้งหมดเพื่อให้มีประสิทธิภาพ กลับไปดูกฎ Keep และนำ R8 กลับมาใช้ในงานด้านวิศวกรรม

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

Reddit พบว่า การเริ่มต้นแบบ Cold Start เร็วขึ้น 40% และข้อผิดพลาด ANR ลดลง 30% หลังจากเปิดใช้โหมดเต็มรูปแบบของ R8

คุณสามารถอ่านกรณีศึกษาฉบับเต็มได้ในบล็อกของเรา

image.png

วิศวกรที่ Disney+ ลงทุนในประสิทธิภาพของแอปและกำลังเพิ่มประสิทธิภาพประสบการณ์ของผู้ใช้ในแอป บางครั้งแม้แต่การเปลี่ยนแปลงเล็กน้อยก็อาจสร้างผลกระทบอย่างมาก ขณะตรวจสอบการกำหนดค่า R8 ทีมพบว่ามีการใช้แฟล็ก -dontoptimize หลังจากเปิดใช้การเพิ่มประสิทธิภาพโดยนำแฟล็กนี้ออก ทีม Disney+ พบว่าประสิทธิภาพของแอปดีขึ้นอย่างเห็นได้ชัด

image.png

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

อ่านเพิ่มเติมในบล็อกวันที่ 1: ใช้ R8 เพื่อลดขนาด เพิ่มประสิทธิภาพ และเร่งความเร็วแอป

แนะนำการเพิ่มประสิทธิภาพ

โปรไฟล์พื้นฐาน ช่วยลดความจำเป็นในการคอมไพล์แบบ Just in Time ได้อย่างมีประสิทธิภาพ ซึ่งจะช่วยปรับปรุงความเร็วในการเริ่มต้น การเลื่อน ภาพเคลื่อนไหว และประสิทธิภาพการแสดงผลโดยรวมโปรไฟล์การเริ่มต้น ทำให้การเริ่มต้นแอปมีน้ำหนักเบามากยิ่งขึ้นด้วยการจัดลำดับไฟล์ Class.dex ของแอปอย่างอัจฉริยะ

และหากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับความสำคัญของโปรไฟล์พื้นฐานต่อประสิทธิภาพของแอป โปรดอ่านบล็อกด้านวิศวกรรมของ Meta ซึ่งแชร์วิธีที่โปรไฟล์พื้นฐานช่วยปรับปรุงเมตริกประสิทธิภาพที่สำคัญต่างๆ ได้สูงสุด 40% ในแอปของบริษัท

เรายังคงปรับปรุง Jetpack Compose ให้มีประสิทธิภาพมากขึ้นสำหรับคุณใน Jetpack Compose 1.10 ฟีเจอร์ต่างๆ เช่น การคอมโพสที่หยุดชั่วคราวได้ และหน้าต่างแคชที่ปรับแต่งได้มีความสำคัญอย่างยิ่งต่อการรักษาการเลื่อนที่ราบรื่นเมื่อจัดการกับรายการที่ซับซ้อน โปรดดู ตอนล่าสุดของ #TheAndroidShow ซึ่งเราอธิบายเรื่องนี้อย่างละเอียด

อ่านเพิ่มเติมในบล็อกวันพุธ: ข้อควรพิจารณาเพิ่มเติมเกี่ยวกับประสิทธิภาพ

การวัดประสิทธิภาพทำได้ง่ายๆ เพียง 3 ขั้นตอน

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

ในระดับที่ 1 เราจะสอนวิธีใช้ข้อมูลที่พร้อมใช้งานจากAndroid Vitals ซึ่งให้ข้อมูลภาคสนามเกี่ยวกับ ANR, ข้อขัดข้อง และการใช้งานแบตเตอรี่มากเกินไป

นอกจากนี้ เราจะสอนวิธีเลื่อนระดับด้วย เช่น เราจะแสดงวิธีไปถึงระดับที่ 3 ด้วยการทดสอบประสิทธิภาพในเครื่อง โดยใช้ Jetpack Macrobenchmark และ UiAutomator 2.4 API ใหม่เพื่อวัดและยืนยันการเปลี่ยนแปลงประสิทธิภาพของแอปได้อย่างแม่นยำ

อ่านเพิ่มเติมในบล็อกวันพฤหัสบดี: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]

การแก้ไขข้อบกพร่องด้านประสิทธิภาพได้รับการอัปเกรดแล้ว

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

การย้อนรอย Logcat อัตโนมัติ

ตั้งแต่ Android Studio Narwhal เป็นต้นไป ระบบจะยกเลิกการปกปิดสแต็กเทรซโดยอัตโนมัติในหน้าต่าง Logcat วิธีนี้จะช่วยให้คุณเห็นและแก้ไขข้อบกพร่องข้อขัดข้องใดๆ ในบิลด์ที่พร้อมใช้งานจริงได้ทันที

กฎ Keep ที่เฉพาะเจาะจง

เมื่อวันอังคาร เราได้อธิบายกฎ Keep ที่จำเป็นในการแก้ไขข้อขัดข้องขณะรันไทม์ โดยเน้นการเขียนกฎระดับสมาชิกที่เฉพาะเจาะจงมากกว่าการใช้ไวลด์การ์ดที่กว้างเกินไป และเนื่องจากเป็นหัวข้อที่สำคัญ เราจึงทำวิดีโอให้คุณด้วย

นอกจากนี้ Android Studio Otter 3 Feature Drop ยังมี Lint Check ใหม่สำหรับกฎ Keep ที่กว้าง ซึ่งจะช่วยคุณในเรื่องนี้ด้วย

image.png

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

อ่านเพิ่มเติมในบล็อกวันอังคาร: Configure and troubleshoot R8 Keep Rules

งานเบื้องหลัง

เราได้แชร์คำแนะนำเกี่ยวกับการแก้ไขข้อบกพร่องในสถานการณ์ทั่วไปที่คุณอาจพบเมื่อกำหนดเวลาให้งานด้วย WorkManager

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

อ่านเพิ่มเติมในบล็อกวันพุธ: Background work performance considerations

การเพิ่มประสิทธิภาพเป็นเส้นทางที่ต้องเดินหน้าต่อไป

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

เราปิดท้ายสัปดาห์ด้วยเซสชันถามและตอบ #AskAndroid Live ซึ่งวิศวกรได้ตอบคำถามที่ยากที่สุดของคุณเกี่ยวกับ R8, การเพิ่มประสิทธิภาพตามโปรไฟล์ และอื่นๆ หากพลาดไป โปรดดูการเล่นซ้ำ

ขอขอบคุณที่เข้าร่วมกับเรา ตอนนี้ก็เริ่มสร้างแอปและรักษาโมเมนตัมนี้ไว้ต่อไปได้เลย

เขียนโดย

อ่านต่อ