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