แพลตฟอร์ม Android ทำงานโดยยึดหลักการที่ว่าหน่วยความจำว่างคือหน่วยความจำที่สูญเปล่า Android จะพยายามใช้หน่วยความจำทั้งหมดที่มีอยู่ตลอดเวลา เช่น ระบบจะเก็บแอปไว้ในหน่วยความจำหลังจากที่ปิดแอปแล้วเพื่อให้ผู้ใช้สลับกลับไปใช้แอปได้อย่างรวดเร็ว ด้วยเหตุนี้ อุปกรณ์ Android จึงมักทำงานโดยมีหน่วยความจำว่างเพียงเล็กน้อย (ดูการจัดสรรหน่วยความจำของ Android ที่นี่)
กระบวนการD daemon สำหรับ Low Memory Kill (LMK) ของ Android จะตรวจสอบสถานะหน่วยความจำของระบบ Android ที่ทำงานอยู่ และตอบสนองต่อแรงกดดันของหน่วยความจำสูงด้วยการหยุดกระบวนการที่ไม่จำเป็นที่สุดเพื่อรักษาให้ระบบทำงานในระดับที่ยอมรับได้
ในการตัดสินว่าจะฆ่ากระบวนการใด เดมอน LMK จะใช้คะแนนหน่วยความจำไม่เพียงพอที่เรียกว่า oom_adj_score เพื่อจัดลำดับความสำคัญของกระบวนการที่ทำงานอยู่ ระบบจะหยุดกระบวนการที่มีคะแนนสูงก่อน ระบบจะปิดแอปที่ทำงานอยู่เบื้องหลังก่อน แล้วจึงปิดกระบวนการของระบบเป็นลำดับสุดท้าย ตารางต่อไปนี้แสดงหมวดหมู่การให้คะแนน LMK จากสูงไปต่ำ ระบบจะลบรายการในหมวดหมู่ที่มีคะแนนสูงสุดในแถวที่ 1 ออกก่อน

เมตริก LMK ใน Android Vitals
Android Vitals ช่วยให้คุณตรวจสอบและปรับปรุงอัตรา LMK ของแอปได้ Android Dev Tools จะวัดอัตรา LMK เพียงอัตราเดียวเท่านั้น ซึ่งก็คืออัตรา LMK ที่ผู้ใช้รับรู้
เมตริกนี้แสดงเปอร์เซ็นต์ของผู้ใช้ที่ใช้งานอยู่รายวันซึ่งพบ LMK ที่ผู้ใช้รับรู้อย่างน้อย 1 รายการ LMK ที่ผู้ใช้รับรู้คือ LMK ที่ผู้ใช้มีแนวโน้มที่จะสังเกตเห็นได้ ตัวอย่างเช่น LMK ที่เกิดขึ้นระหว่างที่แอปแสดงกิจกรรมหรือทำหน้าที่เป็นบริการที่ทำงานอยู่เบื้องหน้า
คุณดูเมตริกได้ในส่วนความเสถียรใน Android Vitals

คุณสามารถกรองเมตริก เปรียบเทียบเมตริกกับแอปที่เทียบเท่า หรือตรวจสอบการเปลี่ยนแปลงของเมตริกเป็นระยะเวลานาน (สูงสุด 3 ปี) ได้เช่นเดียวกับเมตริก Vitals หลักอื่นๆ เช่น ANR และการขัดข้อง ข้อมูลจะพร้อมใช้งานสำหรับแอปที่มีอยู่ตั้งแต่ 28 ม.ค. 2025

เครื่องมือสร้างโปรไฟล์หน่วยความจำ
เครื่องมือต่อไปนี้จะช่วยคุณค้นหาและวินิจฉัยปัญหาเกี่ยวกับหน่วยความจำได้
- ดูวิธีที่แอปจัดสรรหน่วยความจำเมื่อเวลาผ่านไป คุณจะเห็นกราฟแบบเรียลไทม์เกี่ยวกับปริมาณหน่วยความจำที่แอปใช้ จำนวนออบเจ็กต์ Java ที่จัดสรร และเวลาที่ระบบจัดเก็บขยะ
- เริ่มเหตุการณ์การเก็บขยะและจับภาพฮีป Java ขณะที่แอปทำงาน
- บันทึกการจัดสรรหน่วยความจำของแอป ตรวจสอบออบเจ็กต์ที่จัดสรรทั้งหมด และดูสแต็กเทรซสําหรับการจัดสรรแต่ละรายการ
เครื่องมือสร้างโปรไฟล์หน่วยความจำของ Android Studio
Android Studio มี Memory Profiler เป็นคอมโพเนนต์ของ Android Profiler ซึ่งจะช่วยคุณระบุการรั่วไหลของหน่วยความจำและการเปลี่ยนแปลงหน่วยความจำที่อาจทําให้แอปกระตุก ค้าง และอาจทำให้แอปขัดข้อง เครื่องมือวิเคราะห์จะแสดงกราฟแบบเรียลไทม์ของการใช้หน่วยความจำของแอป และให้คุณบันทึกกองขยะ บังคับให้รวบรวมขยะ และติดตามการจัดสรรหน่วยความจำได้

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

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

Unreal Memory Insights
แอปที่สร้างโดย Unreal Engine สามารถใช้ข้อมูลเชิงลึกเกี่ยวกับหน่วยความจําของ Unreal เพื่อดูข้อมูลโดยละเอียดเกี่ยวกับการจองและการยกเลิกการจองหน่วยความจํา รวมถึงแท็กหน่วยความจําระดับล่าง (LLM) และกองคําเรียกที่เกี่ยวข้องกับบล็อกหน่วยความจํา
ระบบการค้นหาข้อมูลเชิงลึกเกี่ยวกับหน่วยความจําสามารถค้นหาการจัดสรรที่ใช้งานอยู่ ณ เวลาใดก็ได้ ระบุการเปลี่ยนแปลงในการใช้งานหน่วยความจํา ค้นหาหน่วยความจําที่รั่วไหล และแยกความแตกต่างระหว่างการจัดสรรระยะสั้นกับระยะยาว
ตั้งแต่ UE 5.4 เป็นต้นไป ข้อมูลเชิงลึกเกี่ยวกับหน่วยความจําจะรองรับการติดตามหน่วยความจําด้วยสแต็กการเรียกสำหรับโปรเจ็กต์ Android
