我的应用程序在平板电脑上正常运行,它的内存非常少,约为20-30 MB,可以看出DBMS – >调试&堆跟踪器.但是在三星galaxy Note-4(2560 x 1440)等设备上运行相同的应用程序时LG G3(2392 x 1440)在首次活动时占用大约200MB的堆空间,然后不断增长.
我试图检查logcats是否存在内存泄漏和修复问题,检查游标和数据库实例是否也关闭了它们.尝试完成活动一旦转移到另一个.但仍然会出现“Out of Memory”错误.
尝试将堆大小增加到更大,但它没有帮助,因为内存不会以某种方式释放.
注意:我对整个应用程序使用相同的可绘制图像,没有创建其他设备的不同文件夹.整个图像大小约为4MB,其具有近400个图像,但在任何布局中一次仅使用15个图像.
解决方法:
经过3天的连续阅读后,我得到了问题的答案,最后问题解决了.
嗯,发生了什么事情
setBackgroundResource(R.drawable.imagename)
将导致Android首先做到
BitmapFactory.decodeResource()
实际上,这将基于屏幕密度(即,用于设备分辨率的基于自动密度的重采样)进行一些重新采样,这导致尺寸增长很多,对于PNG图像也是如此.
AndroID需要几乎10倍的空间来渲染PNG然后再渲染JPG,所以它占用了很多空间,因为我的应用程序在任何活动中都会渲染10-15个PNG图像.由于androID没有释放内存空间,如果你的应用程序正在运行,会产生OOM(Out Of Memory)错误.
所以我所做的只是将res / drawable放到res / drawable-nodpi /(以防止基于密度的自动重采样)并且我已经排序了.
希望这也有助于其他人.
参考链接:
Android background image memory usage
总结以上是内存溢出为你收集整理的android – 高分辨率手机内存不足全部内容,希望文章能够帮你解决android – 高分辨率手机内存不足所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)