2012-04-04 96 views
0

有沒有什麼辦法,如何編程(如配置和填充一些數組)檢查,Dalvik在OutOfMemoryError出現之前可以分配多少內存?可以用Java來做到嗎?Dalvik內存分配

+0

看一看這樣的:http://stackoverflow.com/questions/2630158/detect-application-heap-size-in-android 希望它可以幫助... – 2012-04-04 06:00:47

+0

謝謝,我知道,有一行解決方案,但我需要手動驗證...這就是爲什麼我要求編程解決方案 – Waypoint 2012-04-04 06:04:22

回答

5

每個Java應用程序在運行時分配內存。這就是我們使用

java -Xms<initial heap size> -Xmx<maximum heap size>. 

此外,在Throwable的塊,你可以做以下方式進行:

  1. 總內存(堆) - 調用Runtime.getRuntime()totalMemory(); System.out.println(「Used Memory:」
    +(runtime.totalMemory() - Runtime.runtime.freeMemory())/ mb); System.out.println(「Free Memory」:
    + Runtime.runtime.freeMemory()/ mb); System.out.println(「Total Memory:」+ runtime.totalMemory()/ mb);

也許這會解決問題。

+0

謝謝,這看起來不錯,但問題是與字段分配。我使用字符串數組來確定實際分配的內存,當我設置大的值時,我的程序崩潰。你知道嗎,如何創建動態字符串數組而不需要隱式大小聲明? – Waypoint 2012-04-04 06:36:33

+0

在Java中,您可以創建一個數組列表,並可將其轉換爲像這樣的數組:列表 al = new ArrayList (); al.add(「你的字符串」); al.toArray(new String [al.size()]);.但是,在這種情況下,如果內存是一個約束,它會崩潰。 – UVM 2012-04-04 06:48:04