Android 内存问题与优化避免

本文探讨了Android应用开发中的内存问题,包括内存限制、内存溢出和内存泄漏。通过开源、节流、复用和回收等优化方法,减少内存消耗。此外,介绍了使用Lint、StrictMode、LeakCanary和Android Profiler等工具进行内存问题的检测和定位。
摘要由CSDN通过智能技术生成

比起前几年,现在的 Android 设备拥有更大的内存。但是,即使现在可以使用更多的内存,也是有一个上限的,具体大小和各个厂商的设置有关。如果内存使用不当,还是会影响到APP的性能。内存问题主要有两类,一是内存溢出,二是内存泄漏。解决内存问题,主要靠借助工具检测分析,然后做代码优化。

一、Android 应用开发中的内存问题

1.1 单个进程可用内存限制

目前的 Android 设备,动辄4G、6G甚至8G内存,但是,Android设备的内存再大,每个应用可以使用的内存大小也是有限制的,具体可以使用的最大内存和各大厂商的出厂设置有关。
可以通过adb 查看应用可以使用的最大内存:

adb shell cat /system/build.prop
// ...
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=256m
dalvik.vm.heapsize=512m
// ...

上面的设备是 galaxy s7,可以使用的最大内存为512m,这需要在 manifest.xml 中 application 节点添加 android:largeHeap=”true”,否则,最多只能使用256m。
也可以直接查看它们的值:

adb shell getprop dalvik.vm.heapgrowthlimit
256m
adb shell getprop dalvik.vm.heapsize
512m
adb shell getprop dalvik.vm.heapstartsize
8m

现在的应用,对于图片质量的要求越来越高,动辄几百K,甚至上M一张图片,对于需要加载大量图片的应用来说,256m内存,分分钟就上去了。256m说大不大,说小不小,但是使我们的应用尽量少用内存总不会错。因为占用内存越大,gc频率就可能越高,然后就会出现卡顿的现象。

1.2 内存溢出

内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值