หน้าต่อไปนี้มีข้อมูลเกี่ยวกับการปรับปรุงการใช้หน่วยความจำของแอป
คำแนะนำทั่วไปเกี่ยวกับหน่วยความจำ
- ภาพรวมของหน่วยความจำ
- อธิบายสถาปัตยกรรมหน่วยความจำหลักของ Android, ข้อจำกัดของ RAM และวิธีที่ระบบปฏิบัติการปรับสมดุลกระบวนการโดยใช้ Low Memory Killer (LMK)
- การจัดการหน่วยความจำ
- สรุปแนวทางปฏิบัติแนะนำสำหรับนักพัฒนาแอปในการเผยแพร่ทรัพยากรตลอดวงจรชีวิตของคอมโพเนนต์ การหลีกเลี่ยงการรั่วไหล และการจัดการหน่วยความจำเมื่อเปลี่ยนสถานะของกระบวนการ
- ทำความเข้าใจและแก้ปัญหาหน่วยความจำของ Android
- ให้ภาพรวมที่ครอบคลุมเกี่ยวกับสถาปัตยกรรมหน่วยความจำของ Android, เครื่องมือที่พร้อมใช้งานสำหรับการวิเคราะห์ และแบบฝึกหัดภาคปฏิบัติเพื่อช่วยคุณระบุและแก้ไขปัญหาที่เกี่ยวข้องกับหน่วยความจำ
การเพิ่มประสิทธิภาพเฉพาะด้าน
- ภาพรวมของหน่วยความจำเกม
- รายละเอียดการจัดสรรหน่วยความจำ การจัดการการจัดสรรแบบเนทีฟ และคำแนะนำในการจัดการชิ้นงานกราฟิกที่ปรับให้เหมาะกับแอปที่ใช้เอนจินเกมโดยเฉพาะ
- การเพิ่มประสิทธิภาพรูปภาพบิตแมป
- แสดงวิธีปรับขนาด ถอดรหัส และแคชชิ้นงานบิตแมปอย่างมีประสิทธิภาพภายในไลบรารีรูปภาพ
- จัดการและวินิจฉัยหน่วยความจำ WebView
- อธิบายโมเดลหน่วยความจำแบบหลายกระบวนการของ WebView อธิบายวิธีจัดการวงจรชีวิตอย่างเหมาะสมเพื่อป้องกันการรั่วไหล และแสดงขั้นตอนการทำงานที่เป็นประโยชน์สำหรับการวินิจฉัยปัญหาหน่วยความจำ
- การเพิ่มประสิทธิภาพโค้ด R8
- อธิบายวิธีใช้ประโยชน์จาก R8 เพื่อลดขนาด APK, ค่าใช้จ่ายเมตาดาต้า และการใช้หน่วยความจำรันไทม์
เครื่องมือแก้ไขข้อบกพร่องของหน่วยความจำในเครื่อง
- เครื่องมือ Android Studio
- ให้การตรวจสอบฮีปแบบเรียลไทม์ การติดตามการจัดสรรหน่วยความจำ และขั้นตอนการทำงานของการตรวจหาการรั่วไหลภายใน IDE โดยตรง
- เครื่องมือสำรวจฮีปดัมพ์ของ Perfetto
- ให้การวิเคราะห์เชิงลึกด้วยภาพของฮีปดัมพ์แบบเนทีฟและ Java/Kotlin เพื่อแยกต้นไม้ของออบเจ็กต์ที่เก็บรักษาไว้และการจัดสรรหน่วยความจำแบบไม่ระบุชื่อ
- บันทึกการติดตามระบบในอุปกรณ์
- แสดงวิธีบันทึกการติดตามระดับระบบในอุปกรณ์เพื่อแก้ไขข้อบกพร่องที่เกี่ยวข้องกับประสิทธิภาพในแอป
- การแก้ไขข้อบกพร่องของการใช้งานหน่วยความจำใน Android
- สอนวิธีทำความเข้าใจการจัดการหน่วยความจำของ Linux และใช้เครื่องมือต่างๆ เช่น dumpsys meminfo, Perfetto, โปรไฟล์ฮีปแบบเนทีฟ และฮีปดัมพ์เพื่อติดตามการใช้งานหน่วยความจำและระบุการรั่วไหล
เครื่องมือหน่วยความจำระดับเวอร์ชันที่ใช้งานจริง
- Android Vitals: การใช้งานหน่วยความจำ (RSS แบบไม่ระบุชื่อ + Swap)
- Android Vitals จะแชร์การใช้หน่วยความจำเวอร์ชันที่ใช้งานจริงของแอปโดยแบ่งตามสถานะของกระบวนการ ได้แก่ เบื้องหน้า บริการเบื้องหน้า และบริการเบื้องหลัง
- Android Vitals: การใช้งานหน่วยความจำบิตแมป
- Android Vitals จะแสดงเมตริกเกี่ยวกับหน่วยความจำที่ใช้สำหรับบิตแมปของแอปโดยการรวบรวมข้อมูลจากอุปกรณ์ Android
- Android Vitals: การเพิ่มประสิทธิภาพโค้ด DEX
- Android Vitals สามารถแจ้งเตือนคุณได้เมื่อระดับการเพิ่มประสิทธิภาพโค้ด DEX ของแอปอยู่ในระดับต่ำ ซึ่งรวมถึงการทำให้สับสน การลดขนาด และการเพิ่มประสิทธิภาพสำหรับแอปและเกมที่ใช้ R8
- Crashlytics
- แสดงข้อยกเว้น Out-Of-Memory (OOM) และการหยุดทำงานของตัวจำกัดหน่วยความจำในเวอร์ชันที่ใช้งานจริงพร้อมบริบทการวินิจฉัยเพื่อจัดลำดับความสำคัญและแก้ไขข้อขัดข้องในภาคสนาม
- ProfilingManager
- API ขั้นสูงที่ช่วยให้แอปสามารถรวบรวมและอัปโหลดฮีปดัมพ์และโปรไฟล์ฮีปเวอร์ชันที่ใช้งานจริงจากเซสชันของผู้ใช้ที่ใช้งานอยู่ได้โดยทางโปรแกรม
แหล่งข้อมูลเพิ่มเติม
บล็อกโพสต์
- เตรียมแอปให้พร้อมสำหรับขีดจำกัดหน่วยความจำที่กว้างขึ้น
- การจัดลำดับความสำคัญของประสิทธิภาพหน่วยความจำ: ขั้นตอนสำคัญสำหรับ Android 17
วิดีโอ
การสร้างแอป Android ที่มีประสิทธิภาพด้านหน่วยความจำ