2013-03-24 20 views
1

我正在開發一個Android應用程序。是否可以爲該應用程序分配RAM?例如:當我的應用程序打開時,它必須分配30MB RAM。提到API。在Android中的應用程序的RAM分配

+0

你真的不應該試試這個。你想要達到什麼目的? – rekire 2013-03-24 11:12:08

+0

我被問到這一點。它只是一個測試應用程序。有可能爲應用程序分配RAM空間嗎? – 2013-03-24 11:20:04

+0

那麼你可以使用這個'byte [] ram = new byte [mbCount * 1024 * 1024];' – rekire 2013-03-24 11:22:14

回答

5

不,你不能。這完全由系統管理。

事實上,系統會隨時增加分配給您應用程序的堆。但是,有關內存消耗的應用存在限制。要獲得這個限制,您可以使用以下命令:

/* Expressed in Megabytes */ 
Runtime.getRuntime().maxMemory()/1024/1024 

最後,看來你可以在你的清單中加入指定您的應用程序可能使用比普通的應用程序更多的內存是:

android:largeHeap="true"

如果你使用這個標籤,看看ActivityManager.getLargeMemoryClass()驗證分配給您的應用程序的值。返回的值以兆字節表示。它可以高於由ActivityManager.getMemoryClass()返回的值,因爲您的設備的內存可用性允許。

0

不,你不能那樣做。分配給應用程序的內存特定於設備。我強烈建議您觀看Google IO 2011中的memory management video,以深入瞭解此主題。

此外,請查看logcat的調試日誌以瞭解將多少內存分配給您的應用程序,以及剩餘的內存量。

01-13 14:37:54.538:d/dalvikvm(27390):GC_CONCURRENT釋放393K,47% 免費3377K/6279K,外部2003K/2199K,暫停2MS + 3ms的

我'd不推薦使用largeHeap =「true」。就像@Halim在他的文章中指出的那樣,額外的內存可能無法分配給您的應用程序。

啓用此功能也不能保證可用內存的固定增加,因爲某些設備受其總可用內存的限制。

專注於需要30MB內存以及如何減少內存。

相關問題