แนวทางปฏิบัติที่ดีที่สุดสำหรับการเพิ่มประสิทธิภาพแอป

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

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

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

ใช้โปรไฟล์เริ่มต้น

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

ใช้ไลบรารีการเริ่มต้นแอป

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

โหลดไลบรารีแบบเลื่อนเวลาหรือปิดใช้การเริ่มต้นอัตโนมัติ

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

ใช้สถานะใน Composable

State คือข้อมูลใดๆ ที่เปลี่ยนแปลงได้เมื่อเวลาผ่านไปและกำหนดสิ่งที่ UI แสดงหรือลักษณะการทำงานของ UI เนื่องจาก Compose เป็นแบบประกาศ หน้าจอจึงไม่อัปเดตโดยอัตโนมัติ เว้นแต่ UI จะสังเกตและตอบสนองต่อการเปลี่ยนแปลงสถานะอย่างชัดเจน

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

var shouldLoad by remember {mutableStateOf(false)}

if (shouldLoad) {
   MyComposable()
}

โหลด Composable ภายในบล็อกแบบมีเงื่อนไขโดยแก้ไข shouldLoad ดังนี้

LaunchedEffect(Unit) {
   shouldLoad = true
}

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

เพิ่มประสิทธิภาพหน้าจอเริ่มต้น

หน้าจอเริ่มต้น (Splash Screen) เป็นส่วนสำคัญของการเริ่มต้นแอป และการใช้หน้าจอเริ่มต้นที่ออกแบบมาอย่างดีจะช่วยปรับปรุงประสบการณ์การเริ่มต้นแอปโดยรวมได้ Android 12 (ระดับ API 31) ขึ้นไปมีหน้าจอ Splash ที่ออกแบบมาเพื่อปรับปรุง ประสิทธิภาพ ดูข้อมูลเพิ่มเติมได้ที่หน้าจอแนะนำ

ใช้รูปภาพประเภทที่ปรับขนาดได้

เราขอแนะนำให้ใช้กราฟิกแบบเวกเตอร์สำหรับรูปภาพ หากทำไม่ได้ ให้ใช้รูปภาพ WebP WebP เป็นรูปแบบรูปภาพ ที่ให้การบีบอัดแบบไม่สูญเสียรายละเอียดและแบบสูญเสียบางส่วนสำหรับรูปภาพบนเว็บได้ดีกว่า คุณ สามารถแปลงรูปภาพ BMP, JPG, PNG หรือ GIF แบบคงที่ที่มีอยู่เป็นรูปแบบ WebP ได้โดยใช้ Android Studio ดูข้อมูลเพิ่มเติมได้ที่สร้างรูปภาพ WebP

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

ใช้ Performance API

API ประสิทธิภาพสำหรับการเล่นสื่อพร้อมใช้งานใน Android 12 (ระดับ API 31) ขึ้นไป คุณสามารถใช้ API นี้เพื่อทำความเข้าใจความสามารถของอุปกรณ์ และดำเนินการตามนั้น

ให้ความสำคัญกับการติดตาม Cold Startup

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