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

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

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

สัปดาห์ที่ผ่านมาเราได้เจาะลึกการแชร์แนวทางปฏิบัติแนะนำและคำแนะนำที่จะช่วยให้แอป Android เร็วขึ้น เล็กลง และเสถียรมากขึ้น ตั้งแต่ความสามารถพื้นฐานของ R8 Optimizer และ Profile Guided Optimizations ไปจนถึงการปรับปรุงประสิทธิภาพด้วย 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 เพื่อลดขนาด เพิ่มประสิทธิภาพ และเร่งการทำงานของแอป

แนะแนวทางสู่ประสิทธิภาพที่ดียิ่งขึ้น

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

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

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

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

การวัดประสิทธิภาพทำได้ง่ายๆ เหมือนนับ 1 2 3

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

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

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

อ่านเพิ่มเติมได้ในบล็อกของวันพฤหัสบดี: [ลิงก์ไปยังบล็อกของวันพฤหัสบดี: คำแนะนำในการยกระดับเส้นทางการวัดประสิทธิภาพ]

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

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

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

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

จำกัดกฎการเก็บ

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

และด้วยการตรวจสอบด้วยเครื่องมือวิเคราะห์ซอร์สโค้ดใหม่สำหรับกฎ Keep แบบกว้าง การอัปเดตฟีเจอร์ใหม่ของ Android Studio Otter 3 จึงครอบคลุมถึงเรื่องนี้ด้วย

image.png

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

อ่านเพิ่มเติมในบล็อกของวันอังคาร: กำหนดค่าและแก้ปัญหากฎการเก็บของ R8

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

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

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

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

การเพิ่มประสิทธิภาพเป็นกระบวนการที่ต้องทำอย่างต่อเนื่อง

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

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

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

เขียนโดย

อ่านต่อ