低内存游戏见解

当设备内存不足时,Android有时会终止(或结束)顶级、高保真游戏。Android试图使用所有可用内存来缓存应用和游戏以确保它们快速加载(改善用户体验),但是当内存变得有限时,系统会终止内存占用最多的应用和游戏以释放内存,以便正常设备操作。

以下信息、见解和最佳实践可以帮助您实现更好的游戏内存使用情况

  • 使用 ApplicationExitInfo — 此Java/Kotlin API返回Android系统终止先前游戏运行的原因。使用 ApplicationExitInfo 检查低内存是否为先前进程运行终止的原因。检查游戏是否因内存不足而终止,以便可以优化游戏以在该设备上使用更少的内存。
  • 查看总物理RAM — 为了防止游戏在前台运行时被终止,并与设备的功能相匹配,请查看总物理RAM,并根据该值调整游戏内存使用情况。如果目标是防止应用在切换到后台后不久就被终止(以允许玩家进行多任务处理),请使用trim回调(特别是TRIM_MEMORY_UI_HIDDEN)来减少游戏内存使用情况。
  • 不要注册已弃用的trim回调 — 当Android遇到内存限制时,Android没有用于检测原生内存压力事件的任何API(请参阅“低内存杀手守护进程”调用)。修剪回调在防止内存不足终止方面没有帮助,因此Android弃用了所有这些回调,除了TRIM_MEMORY_UI_HIDDENTRIM_MEMORY_BACKGROUND

低内存杀手守护进程

Android低内存杀手守护进程(lmkd)是一个监视正在运行的Android系统的内存状态并对高内存压力做出反应的进程,它通过终止不必要的进程来保持系统以可接受的水平运行。

守护进程可以选择终止进程,而无需等待进程确认任何类型的回调。因此,应用和游戏不会收到通知作为最后机会在被终止前释放内存。

详细了解低内存杀手守护进程