แนวทางปฏิบัติแนะนำต่อไปนี้จะช่วยเพิ่มประสิทธิภาพแอปโดยไม่ลดคุณภาพ
ใช้โปรไฟล์พื้นฐาน
โปรไฟล์พื้นฐาน ช่วยปรับปรุงความเร็วในการเรียกใช้โค้ดได้ 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 หมายถึงการเริ่มทำงานตั้งแต่ต้นของแอป ซึ่งหมายความว่ากระบวนการของระบบยังไม่ได้สร้างกระบวนการของแอป โดยปกติแล้ว แอปจะเริ่มตั้งแต่ต้นหากคุณเปิดแอปเป็นครั้งแรกนับตั้งแต่อุปกรณ์บูตหรือนับตั้งแต่ระบบบังคับหยุดแอป การเริ่มตั้งแต่ต้นจะช้ากว่ามากเนื่องจากแอปและระบบต้องทำงานมากขึ้น ซึ่งไม่จำเป็นต้องทำในการเริ่มต้นประเภทอื่นๆ เช่น การเริ่มต้นแบบอุ่นเครื่องและการเริ่มต้นแบบร้อน การติดตามระบบ การเริ่มต้นแบบเย็นช่วยให้คุณมีภาพรวมที่ดีขึ้นเกี่ยวกับประสิทธิภาพของแอป
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- การวิเคราะห์และการเพิ่มประสิทธิภาพการเริ่มต้นของแอป
- เวลาเริ่มต้นของแอป
- เฟรมที่ค้าง