移动开发中,对图片的处理并不像web那样简单(web中只需要一张图片的url就可以显示在网页中),在app中,如果加载一个大图片,很有可能会出现OOM的问题,其根本原因在于,当加载大图片时,图片所占用的内存空间极有可能超过了当前app剩余的内存容量,甚至是超过了app最大的内存空间。 有人可能会问,我加载的图片明明只有2~3M而已,而且现在手机的内存容量都这么大,怎么会超出呢?那下面来说说我的理解(当然有参考过大牛的文章,大神们不要拍砖哈)
一、如何得知一个app的最大内存空间
首先要解除的一个疑惑是:手机的内存容量并不代表app的最大内存空间,系统对每个app都有它默认的内存占用空间,当然也可以调节。那么如何知道app的最大内存空间呢,可以用下面两个简单的方法:
1、使用代码
Runtime.getRuntime().maxMemory();
2、使用adb命令
adb shell dumpsys meminfo $package_name or $pid //使用程序的包名或进程id