当设备内存不足时,Android 有时会终止(或终止)热门的高保真游戏。Android 会尝试使用所有可用内存来缓存应用和游戏,以确保它们快速加载(从而改善用户体验),但当内存变得有限时,系统会终止占用内存最多的应用和游戏,以释放内存以便设备正常运行。
以下信息、数据分析和最佳实践可帮助您更好地利用游戏内存
- 使用
ApplicationExitInfo
- 此 Java/Kotlin API 会返回 Android 系统终止上一个游戏运行的原因。使用ApplicationExitInfo
检查是否存在内存不足的情况,作为先前进程运行终止的原因。检查游戏是否因内存不足而被终止,以便优化游戏以便在该设备上使用更少的内存。 - 查看总物理 RAM - 为防止游戏在前台运行时被终止,并使其与设备的功能相匹配,请查看总物理 RAM,并据此调整游戏内存用量。如果目标是防止应用在切换到后台后不久被终止(以允许玩家进行多任务处理),请使用 trim 回调(具体为
TRIM_MEMORY_UI_HIDDEN
)来减少游戏内存用量。 - 请勿注册已废弃的 trim 回调 - Android 没有任何 API 可用于在原生内存压力事件遇到内存限制时检测这些事件(请参阅低内存终止守护程序守护程序说明)。修剪回调对防止内存不足终止没有帮助,因此 Android 废弃了
TRIM_MEMORY_UI_HIDDEN
和TRIM_MEMORY_BACKGROUND
以外的所有回调。
低内存终止守护程序 Android 低内存终止守护进程 (lmkd) 是一个进程,用于监控运行中的 Android 系统的内存状态,并通过终止最不必要的进程来应对内存压力较高这一问题,使系统以可接受的水平运行。 守护程序可以选择要终止的进程,而无需等待进程确认任何类型的回调。因此,应用和游戏在被终止之前不会收到通知,无法抓住最后一次机会释放内存。 详细了解低内存终止守护程序。 |