0

嗨,我正在制作一个聊天应用程序。在那个应用程序中,我使用了很多位图。此应用程序占用大约 55 mb 的内存空间。谁能告诉我如何优化我的应用程序以减少内存空间。一些朋友建议我解绑 Bitmap,但我对此一无所知。谁能帮我 。提前致谢。

4

2 回答 2

3

您看过“高效显示位图”培训课程吗?http://developer.android.com/training/displaying-bitmaps/

除非您在某处发生内存泄漏,否则手动取消绑定不会真正帮助您使用内存。您可能想要查看的调用是Bitmap.recycle()

于 2013-01-25T12:06:48.387 回答
1

在那个应用程序中,我使用了很多位图

您是否同时使用大量位图?

当不再需要位图对象时,您是否持有对它们的引用?如果是 - 不要那样做!

您是否将位图解码为实际需要显示它们的高度和宽度?(将显示它们的实际 imageView 大小)如果不是 - 你应该这样做!

Bitmap.recycle()如果您接受我的建议并且仍然消耗如此多的本机内存 - 您可以通过调用不再需要的位图对象上的方法来执行您所称的“解除绑定” 。此方法释放驻留在与位图关联的本机内存中的像素数组。

如果没有人再持有位图引用,系统会自行释放此内存,但调用该recycle()方法将导致系统在您告诉它时释放内存。如果您在短时间内使用大量位图,这可能很有用,系统通常不会在那段时间触发内存释放。

于 2013-01-25T12:26:00.220 回答