为了账号安全,请及时绑定邮箱和手机立即绑定

Android 内存专项——常见问题之内存泄漏

标签:
Android

一、前言

不管是以前的手机只有 256 M的内存时代,还是现在已经 8G 都快成普及的时代,内存优化一直以来都是开发过程中的一个难题。内存的泄漏以及不合理使用,直接带来的负面影响就是 APP 显得卡顿了,甚至最后造成 APP 在内存上出现 OOM 而导致的崩溃问题。

二、内存优化的常见问题

内存的问题繁多,但总结以及归纳出来,比较突出的可能就是这么几个点:内存泄漏、频繁GC,造成卡顿、新版本总体稳定增长、内存碎片。详见下图的描述。

图片描述

三、内存泄漏

可能我们都知道什么是内存泄漏,但也不妨再看看关于内存泄漏的具体定义。以下先来看看《维基百科》对于内存泄漏的专业解释。

在计算机科学中,内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。
– 摘自《维基百科》

而在 Android 中,我们讲内存泄漏,主要是指针对 Java 层的内存泄漏。Java 有自己的垃圾回收机制,理论上来说不需要我们关注内存的分配与回收。但有一些资源或者说就是对象,在使用过程中由于长时间被其他对象所引用,导致其得不到回收而一直占用着内存,从而引起了相对某个生命周期而言的内存泄漏。

以下是 Android 中常见的内存泄漏问题。

图片描述

通过上图,可以看出,Android 中常见的内存泄漏基本都是由于长期持有 Activity 或者 某个组件的 Context 从而导致的内存泄漏。相应的常见解决方案如下。

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
4
获赞与收藏
29

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消