您好,我正在制作聊天应用程序。在该应用程序中,我使用了大量的位图。此应用程序在内存中占用大约55 MB的空间。任何人都可以告诉我如何优化我的应用程序,以便它在内存中占用更少的空间。有些朋友建议我取消绑定Bitmap,但我不知道它。谁能帮我 。提前谢谢。
答案 0 :(得分:3)
您是否看过“有效显示位图”培训课程? http://developer.android.com/training/displaying-bitmaps/
手动解除绑定对内存使用没有任何帮助,除非你在某处有内存泄漏。您可能希望查看的电话是Bitmap.recycle()。
答案 1 :(得分:1)
在该应用程序中,我使用了大量的位图
你在同一时间使用了很多位图吗?
在不再需要位图对象时,是否保留对位图对象的引用?如果是的话 - 不要那样做!
您是否将位图解码为实际需要显示它们的高度和宽度? (显示它们的实际imageView大小)如果不是 - 你应该这样做!
如果您将接受我的建议并仍然消耗如此多的本机内存 - 您可以通过调用不再需要的位图对象上的Bitmap.recycle()
方法来执行所谓的“解除绑定”。此方法释放像素阵列驻留在与位图关联的本机内存中。
如果没有人持有位图引用,系统会自行释放这个内存,但是调用recycle()
方法会导致系统在你告诉它时释放内存。如果你在很短的时间内使用很多位图,这可能很有用,系统通常不会在那段时间内触发内存释放。