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

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

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

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

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

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

ใช้ไลบรารี App Startup

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

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

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

ใช้ ViewStub

ViewStub เป็นหน่วยที่ไม่แสดงขนาด 0 View ที่คุณสามารถใช้เพื่อเพิ่มทรัพยากรเลย์เอาต์แบบ Lazy Loading ขณะรันไทม์ ช่วงเวลานี้ ช่วยให้คุณสามารถชะลอการขยายมุมมองที่ไม่จำเป็นเมื่อเริ่มต้นระบบจนกว่าจะถึงช่วง

หากใช้ Jetpack Compose คุณจะลักษณะการทำงานที่คล้ายกันกับ ViewStub ได้ การใช้สถานะเพื่อเลื่อนการโหลดคอมโพเนนต์บางรายการ ดังนี้

var shouldLoad by remember {mutableStateOf(false)}

if (shouldLoad) {
   MyComposable()
}

โหลดองค์ประกอบที่เขียนได้ภายในบล็อกแบบมีเงื่อนไขโดยแก้ไข shouldLoad:

LaunchedEffect(Unit) {
   shouldLoad = true
}

ซึ่งจะทริกเกอร์การจัดองค์ประกอบใหม่ที่มีโค้ดอยู่ภายใน ในข้อมูลโค้ดแรก

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

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

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

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

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

ใช้ Performance API

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

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

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