开发者社区> 问答> 正文

android oom怎么办

android oom怎么办

展开
收起
云计算小粉 2018-05-10 20:01:39 3038 0
3 条回答
写回答
取消 提交回答
  • mat 软件 定位内存泄漏原因
    2019-07-17 22:12:05
    赞同 展开评论 打赏
  • Android系统与应用研发7年,专注于系统性能问题处理、开发流程工具研发、SDK组件研发工作。 服务端研发2年,前后使用Golang, RoR搭建后端服务程序。

    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虚拟机运行参数,定时清理后台常驻进程等系统方案,一般是目前市面上的手机安全管家做的事情。

    2019-07-17 22:12:05
    赞同 展开评论 打赏
  • studio有专门的调优功能,本地或ndk远程连接都可以
    2019-07-17 22:12:05
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载