2011-12-24 97 views
1

我在Android 4.0.3上創建了一個空應用程序,當我使用hprof轉儲堆時,我看到應用程序(在我的Nexus S上)使用了8.3 MB!空應用程序中的內存使用情況

對於空應用程序來說非常大。當我分析內存使用情況時,我發現android.content.res.Resources類使用了主要部分(5,6 MB)。我不明白爲什麼需要這麼多內存,只有一個小的默認圖標(4 kB)以及默認的佈局和字符串文件(每個爲1 kB)。這是正常的嗎?在其他Android版本上有相同的結果嗎?有人有一個想法來減少它?

回答

2

如果你在ICS上(我假設你是),那麼這是因爲硬件加速。 不知道它在默認情況下(我不認爲這是)啓用,我沒有任何ICS :(

硬件加速繪製並不全是全力爭勝的。例如在 的PVR驅動程序像Nexus S和Galaxy Nexus這樣的設備,只需要 開始在一個進程中使用OpenGL就可以消耗大約8MB的內存,因爲我們的處理開銷大約爲2MB,這個數目非常大,這個內存需要 遠離其他的東西,比如作爲可以保持運行的後臺進程的數量 ,可能會減慢諸如應用 切換之類的事情。

來源:https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s

編輯:爲了減少它,你就需要設置您的構建目標蜂巢或更低,但你也不能使用硬件加速。你的來電。

+0

是的,我在ICS上!非常感謝,我不知道!我會盡快檢查你的建議。 – TheAngel 2011-12-25 10:40:19

+1

並非如此。我嘗試使用Android 2.2構建目標,它仍然使用8MB(在我的Nexus S上)。在該試驗中應用清單文件,我還設置: <使用-SDK機器人:的minSdkVersion = 「8」 機器人:targetSdkVersion = 「10」/> - > minSdk:機器人2.2 - > targetSdk:機器人2.3.3 在安裝了Android 4.0.3的仿真器上,它使用5.8MB,在安裝了Android 2.2的仿真器上,它使用1.7MB。 – TheAngel 2011-12-25 19:49:43

相關問題