OOM全称Out of Memory. 常见于带有运行时环境的编程语言(Kotlin, Java,Python,Ruby等有虚拟机容器的语言)中,用于提示开发者内存超出最大限制。
作为应用开发人员,解决OOM主要是对自己的应用内存使用情况,特别是出现内存泄漏等场景时进行内存占用情况分析, 借助分析的数据有针对性的进行内存优化。
针对Android SDK层(Java层)的内存,可以使用Android Studio 中的MAT工具进行分析,一般建议的关注点是: Bitmap使用情况,大数据集合的缓存使用;
针对 Android NDK层的内存(这块实际不受OOM的控制),一般需要使用具有root权限的工具,借用libc中的debug malloc工具,分析C层中的内存分配与使用情况。
常见的内存优化方案有: 使用WeakReference替代强引用,特别是图片类的资源;用资源(线程、下载、图片)池替代随意资源分配。
针对Android系统开发人员,将面对的是系统OOM与Low Memory Killer的相关问题,这是就涉及到调节系统LMK的参数,APP虚拟机运行参数,定时清理后台常驻进程等系统方案,一般是目前市面上的手机安全管家做的事情。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。