2012-09-20 69 views
1

我正在開發一個Android應用程序,它有很多使用大量RAM的位圖。我的問題是,當我的應用程序長時間運行並且內存使用率超過64 MB時,應用程序崩潰時出現「內存不足錯誤,VM不會讓我們分配......等等」。爲什麼我的Android應用程序的內存限制最大爲64 MB?

雖然其他應用程序,如臉譜達到200 MB RAM有時沒有任何崩潰,並具有非常快的性能。我的設備是Galaxy S II。

請注意,我的問題不是減少內存使用量,而是關於我的應用程序和其他應用程序之間的內存限制差異。

謝謝。

+1

我無知地說,但我真的懷疑Facebook使用200MB的內存。 – AedonEtLIRA

+0

打開它,並保持向下滾動更多新聞提要幾分鐘,然後看。 –

回答

1

我認爲應用程序可以使用的內存量有限制...以前是32MB ...可能會有一個權限,您可以更改以請求更多的內存,就像您一樣可以請求硬件加速。從一個快速的谷歌android:largeHeap =「true」可能是你的答案...另外Runtime.getRuntime()。maxMemory();可能有幫助? This link也很有趣......

+0

我真的很想寫一個測試應用程序來超過這個限制 - 讓我知道如果你找到答案! – 0909EM

+0

感謝您的回答。看起來是正確的答案,但不幸的是我不能使用它,因爲它支持API 11+,而我的目標是API 8 + –

+1

@ 0909EM,這是不正確的,內存限制是由品牌給出,並有一個那裏有很多不同的設備。 – Ken

0

vm爲每個應用程序預留的內存量不是Android生態系統的一部分,無法確定,它是製造商給出的配置的一部分。

通常,有關每個虛擬機的內存大小的最後一個單詞由文件build.prop給出。

如果你不知道你在做什麼,不要使用NDK技巧。

相關問題