2010-07-23 27 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