登录

谷歌Android 17强制应用“瘦身”:为每个App设定内存使用上限,越界即杀进程且不留堆栈信息


速读:谷歌Android17强制应用“瘦身”:为每个App设定内存使用上限,越界即杀进程且不留堆栈信息2026年06月11日16:12IT之家IT之家6月11日消息,谷歌官方发布博客,宣布将从Android17开始引入更严格的应用内存管理机制。 IT之家注意到,谷歌此前发布的Android17Beta4测试版中,应用内存限制机制已经作为重点改进项目向开发者开放测试。 谷歌表示,这项调整旨在提升设备整体稳定性,避免单个应用因内存泄漏或异常占用大量RAM而影响整个系统的多任务体验。 这一调整将改变此前Android系统主要依赖LowMemoryKiller机制进行内存回收的局面。
2026年06月11日 16:1

IT之家 6 月 11 日消息,谷歌官方发布博客,宣布将从 Android 17 开始引入更严格的应用内存管理机制。

简单来说,Android 17 将根据设备的物理内存(RAM)总量,为每个 App 设定明确的内存使用上限;一旦某个应用超出该上限,Android 将直接终止该进程,且不会留下常规的崩溃堆栈信息。

谷歌表示,这项调整旨在提升设备整体稳定性,避免单个应用因内存泄漏或异常占用大量 RAM 而影响整个系统的多任务体验。

这一调整将改变此前 Android 系统主要依赖 Low Memory Killer 机制进行内存回收的局面。在以往的版本中,当系统整体内存紧张时,LMK 会按进程优先级逐步终止后台和缓存进程,但对于持有较高优先级状态(如正在运行前台服务)同时内存不断膨胀的应用,LMK 一开始不会优先处理它,导致系统只能通过终止大量运行良好的缓存应用来回收内存,这不仅严重削弱了多任务体验,还让用户切回之前使用过的应用时不得不经历缓慢的冷启动过程,同时加剧了 CPU 负载和电量消耗。

谷歌希望 Android 17 通过提前限制单个应用的内存占用减少此类“连锁清理”现象。通过引入基于设备总内存的确定性内存边界,Android 17 可以在单个应用因内存泄漏或过度占用而引发系统级别的不稳定之前进行干预,避免出现界面卡顿、设备发热以及频繁杀后台等问题。

为帮助开发者适应新规则,谷歌同步给出了多项优化建议。其中最重要的一项是全面启用 R8 字节码优化工具。R8 可以压缩和混淆代码,删除未使用的资源与功能模块,从而减少应用运行时需要常驻内存的代码量。谷歌表示,英国数字银行应用 Monzo 在启用完整 R8 优化后,应用无响应(ANR)发生率下降 35%,冷启动表现提升 30%,安装包体积缩小约 9%。

在图片处理方面,谷歌强调位图(Bitmap)往往是 Android 应用中最主要的内存消耗来源。官方建议开发者使用 Glide、Coil 等图片加载框架,并通过图片缩放、裁剪优化、位图复用等方式降低内存占用。当图片不需要透明通道时,可优先采用 RGB_565 格式,其内存占用仅为默认 ARGB_8888 格式的一半。

针对内存泄漏问题,谷歌建议开发者利用 Android Studio 集成的 LeakCanary 分析工具及时发现并修复对象引用未释放等问题。常见泄漏场景包括 Activity、Fragment、View 生命周期结束后仍被持有引用,以及监听器、观察者或广播接收器未正确注销等。

与此同时,Android 17 继续强化应用主动释放内存的能力。谷歌建议开发者在 Activity、Fragment、Service 或 Application 中实现 onTrimMemory 回调。当应用界面进入后台或进程成为系统回收候选对象时,主动清理图片缓存、视频缓冲区以及可重新构建的数据资源,以减少被系统终止的风险。

为了方便开发者排查线上问题,谷歌还进一步扩展了 Android 15 引入的 ProfilingManager API。Android 17 新增 OOM(内存耗尽)和异常事件触发机制,允许应用在发生 Out Of Memory 错误或触及系统内存限制前自动生成堆转储(Heap Dump)文件,供开发者后续分析内存泄漏、异常对象占用以及资源管理问题。

IT之家注意到,谷歌此前发布的 Android 17 Beta 4 测试版中,应用内存限制机制已经作为重点改进项目向开发者开放测试。随着 Android 17 正式版推进,该机制预计将成为系统层面的默认行为,开发者需要提前完成应用适配和内存优化工作,以避免因超出系统限制而被直接终止运行。

主题:谷歌|Android17|谷歌建议开发者