0

当我开始从事我的项目时,我不知道如何编程,我只是边学边学。我的程序需要大量位图图形,我很早就遇到了内存问题。我在我的应用清单中启用了 LargeHeap 以允许我为图形使用更多内存,但从那以后我了解了更多关于 android 如何使用垃圾收集器处理内存的信息。我制作了小型演示应用程序来测试 GC 可以跟上我更改位图的速度并且一切正常。

但是当我尝试在我的大项目中使用 GC 时,该项目现在有一个荒谬的 170mb 堆(该程序不用于一般用途,所以堆并不是真正的问题......我只是很挑剔),内存消耗不断增加。过去我在我的应用程序中注意到 android 的一些奇怪行为,我最终将其归结为“该程序可能对系统来说太大了”,所以我想知道是否有必要相信我的程序太大了还是密集的垃圾收集器足够快地完成它的事情?我的意思是,一个应用程序的 170mb 堆已经够荒谬了,对吧?

编辑 - 我认为问题的可能解决方案,我的问题的答案将来自重写整个程序以利用 GC。但是,正如我所说,这将涉及重写整个事情!- 所以我宁愿不打扰:D

4

1 回答 1

0

首先,您必须担心 GC。通常发生的情况是(就像在画廊的情况下),加载了多个图像。基于 BMP 的图像被加载并因此被存储。因此,它们的大小实际上取决于像素数。

是一个非常相似的问题。所以调整Image大小和纵横比,一切都应该很好。

于 2013-02-15T10:46:10.070 回答