Android 内存

以下页面提供了有关如何改进应用内存使用情况的信息。

一般内存指南

内存概览
介绍了核心 Android 内存架构、RAM 限制以及操作系统如何使用低内存终止守护程序 (LMK) 来平衡进程。
内存管理
概述了开发者在组件生命周期内释放资源、避免内存泄漏以及在进程状态之间转换时管理内存的最佳实践。
了解和排查 Android 内存问题
全面概述了 Android 内存架构、可用于分析的工具,以及可帮助您识别和解决内存相关问题的实践练习。
设置应用内存预算
说明了如何声明和管理应用内存预算,以将内存使用量减少到应用的活跃工作集。

特定区域的优化

游戏内存概览
详细介绍了内存预算、原生分配处理和图形资源管理指南,这些指南专门针对使用游戏引擎的应用量身定制。
优化位图图像
演示了如何在图片库中高效地调整位图素材资源的大小、解码和缓存位图素材资源。
管理和诊断 WebView 内存
介绍了 WebView 多进程内存模型,描述了如何正确管理其生命周期以防止泄漏,并提供了用于诊断内存问题的实用工作流。
R8 代码优化
说明了如何使用 R8 来减小 APK 大小、元数据开销和运行时内存消耗。

本地内存调试工具

Android Studio 工具
直接在 IDE 中提供实时堆检查、内存分配跟踪和内存泄漏检测工作流。
Perfetto 堆转储浏览器
可对原生和 Java 或 Kotlin 堆转储进行深入的可视化分析,以隔离保留的对象树和匿名内存分配。
在设备上捕获系统轨迹
展示如何记录设备端系统级轨迹,以解决应用中与性能相关的 bug。
在 Android 设备上调试内存用量
介绍如何了解 Linux 内存管理,以及如何使用 dumpsys meminfo、Perfetto、原生堆分析报告和堆转储等工具来跟踪内存用量并识别内存泄漏。

生产级记忆工具

Android Vitals:内存用量(匿名 RSS + 交换空间)
Android Vitals 会分享您应用的正式版内存用量,并按进程状态(前台、前台服务和后台服务)进行细分。
Android Vitals:位图内存用量
Android Vitals 通过汇总 Android 设备的数据,提供有关应用的位图内存占用空间的指标。
Android Vitals:DEX 代码优化
当应用的 DEX 代码优化级别较低时,Android Vitals 可以提醒您。这包括使用 R8 的应用和游戏的混淆、缩减和优化。
Crashlytics 20.1.0
显示生产环境中的内存不足 (OOM) 异常和内存限制器终止,并提供诊断上下文,以便确定现场崩溃的优先级并加以修复。
ProfilingManager
高级 API,可让应用以编程方式从实时用户会话中收集和上传生产堆转储和堆配置文件。

其他资源

如需详细了解内存,请参阅以下其他资源:

博文

视频