【问题标题】:Android performance and memory helpAndroid 性能和内存帮助
【发布时间】:2011-04-23 20:03:29
【问题描述】:

在使用蓝牙查找点对点网络时,我想更改一些周围制作的精灵。我想要改变的是制作虚拟菜单。截至目前,有一个开始菜单,仅此而已。所以我做了一个选择菜单和 2 个虚拟菜单,稍后会显示帮助和多人游戏选项。

我注意到我在使用这些虚拟 png 文件时得到了一些非常奇怪的结果。它只会显示虚拟文件然后崩溃。在更改设置后,我遇到了一个错误,说 android 内存不足并且它崩溃了。它指出了我在哪里创建一个新对象。我更改了代码,然后它再次运行。新的问题是这种低内存问题仍然存在。我还是安卓开发新手。

我加载的 .png 文件是否很大,因此内存不足? 2 个新的虚拟 png 为 400 x 300 像素。如果这是真的,我的设计是否如此接近内存限制以至于任何新的东西都会毁掉它?

如果我不正确,您有哪些提示可以帮助解决内存问题?

谢谢

【问题讨论】:

  • 这很难回答,不知道代码是什么,图片有多大(以 kb 为单位)。另外你正在使用什么版本的android?但我不认为这是我所看到的照片。
  • 我使用的是安卓 2.2 版。我检查了这些图像,它们的大小都约为 20.0 kb。其中有 7 个。我从很多使用java的朋友那里了解到,您不应该调用垃圾收集器,但是有没有办法防止大量创建对象。在不同的功能中动态创建对象是否更好。例如,所有绘图对象都是在绘图函数中创建的,而不是在线程中创建的。或者这对以太没有帮助吗?您如何防止过多使用内存?
  • 您的问题不在于图像 - 它们并不大。您需要重新表述您的问题(请参阅其他问题作为示例)并包含一些代码。您提供的信息很少,可以帮助这里的人,但如果提出更好的问题,您会得到一些好主意。

标签: android performance memory-management


【解决方案1】:

图像在磁盘上的大小无关紧要。当您将它们加载到内存中时,它们会变得多大。如果您使用 ARGB_8888,300x400 将变成 500K 位图。是的,你需要更加小心。例如,请参见:http://davidjhinson.wordpress.com/2010/05/19/scarce-commodities-google-android-memory-and-bitmaps/
http://www.rbgrn.net/content/363-releasing-bitmap-memory-when-not-needed

编辑:P.S.欢迎来到安卓的世界。您刚刚经历了一个痛苦的成人仪式,我称之为“位图冲击”。总有一天你会回过头来笑。 :-)

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 2011-03-28
    相关资源
    最近更新 更多