2010-07-23 26 views
4

我们毕业项目中的软件团队要求增加Android中每个进程的堆大小。他们说默认是“16MB”,这对他们来说是不够的。 我如何定制尺寸?Android平台中的自定义堆大小?

,我发现文件中的注释行:在我的Android源代码/acme/my_board/BoardConfig.mk

# USE_CUSTOM_RUNTIME_HEAP_MAX := "64M" 

难道这就是我需要修改?

+0

这是对所有应用程序的默认堆,所以要与OS的自定义生成改变它或改变堆大小的目标在特定应用程序的运行时? – 2010-07-23 23:15:26

+0

好吧,他们中的任何一个都能解决我的问题。不过,第二个选项“特定”要好得多。 – 2010-07-23 23:59:02

+0

这个问题有点涉及到我之前问过的问题,你可以在这里查看:http://stackoverflow.com/questions/3078301/dalvik-memory-allocation-how-to-change-the-default-限制 根据答案,您必须更改操作系统版本,并且答案中发布的指示应该做到这一点,即使我自己没有尝试它们,因为我正在寻求特定于解决方案的应用程序。 – 2010-07-24 00:27:33

回答

1

我为Android平台的邮件列表,这个问题的答案

您可以更改platform/dalvik/vm/Init.c

例如,使其32MB,你可以做以下

gDvm.heapSizeMax = 32 * 1024 * 1024;

另一种建议的方法是向上日期之前,您system.prop

问候, MUTHU廉

3

在你onCreate方法在您的活动,或者,如果你想在一个包,一个自定义的应用程序对象的onCreate所有的应用程序,添加

dalvik.system.VMRuntime.getRuntime().setMinimumHeapSize(yournumberhere); 

编辑:另外请注意,Android将自动增加堆大小,如果它需要更多。所以即使默认值可能是16,如果需要更多,它也会增加它。但是,这可能会使实时情况有点棘手,这是不好的。因此,如果你知道它将超过16,那么事先做好它是很好的。

+2

值得注意的是,这不是增加应用程序堆大小的可持续方法,请参阅http://developer.android.com/reference/dalvik/system/VMRuntime.html ...此类已弃用。 这是一个不适合一般用途的内部Dalvik类。它将在未来的版本中从公共API中删除。 – 2010-07-24 16:10:29