หน่วยความจำของ Android

หน้าต่อไปนี้มีข้อมูลเกี่ยวกับการปรับปรุงการใช้หน่วยความจำของแอป

คำแนะนำทั่วไปเกี่ยวกับหน่วยความจำ

ภาพรวมของหน่วยความจำ
อธิบายสถาปัตยกรรมหน่วยความจำหลักของ 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 ที่มีประสิทธิภาพด้านหน่วยความจำ