android– 高分辨率手机内存不足

android– 高分辨率手机内存不足,第1张

概述我的应用程序在平板电脑上正常运行,它的内存非常少,约为20-30MB,可以看出DBMS–>调试&堆跟踪器.但是在三星GalaxyNote-4(2560x1440)等设备上运行相同的应用程序时LGG3(2392x1440)在首次活动时占用大约200MB的堆空间,然后不断增长.我试图检查logcats是否存在内存泄漏和修

我的应用程序在平板电脑上正常运行,它的内存非常少,约为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 – 高分辨率手机内存不足所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1111655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存