2012-11-08 29 views
2

在我的Android應用程序中,當應用程序啓動時,我在日誌中找到此消息。加載時應用程序分配大內存

Grow heap (frag case) to 13.781MB for 3271696-byte allocation 

這種情況很快setContentView()被調用,並得到執行的應用程序的另一部分甚至在後。

爲什麼設置內容視圖佔用這麼多內存?

我不確定這是什麼意思。可以解釋一下嗎?

謝謝

回答

2

有沒有簡單的答案。內容視圖有多大?你有沒有使用Eclipse MAT?另外,屏幕有多大?有ImageView加載大圖像嗎?這與* 1000x1000圖像的大小有關。

  • 注意:錯誤計算在前面。
+0

我的圖片不大,只有450kb。我只是在加載屏幕上有一個imageview和一個web視圖。 – Zach

+1

這是我的形象。我刪除了該映像,並且不再顯示任何內存分配。我必須展示一個啓動畫面,那麼最好的前景是什麼? – Zach

+0

有幾種方法。例如,你正在使用的設備的資源是什麼?您可以將圖像的分辨率限制到某些設備並相應地繪製drawable。更高分辨率的設備將擁有更多的RAM。其他方法包括將圖像切成瓦片,這可能或可能不起作用。 –

1

setContentView(int res)infilates佈局並添加所有頂層視圖。

可能是圖像和其他複雜的視圖加載你的記憶這麼多。考慮在可繪製文件夾中調整圖像大小。

+0

我的圖片不大,只有450kb。我只是在加載屏幕上有一個imageview和一個web視圖。 – Zach

+0

如果你提供了一些代碼,我可能在這種情況下說更多acurate。許多事情可能導致這種情況。 – Ercan

+1

壓縮之前或之後是450k(jpeg/gif/png)?未壓縮的450k .jpeg在解壓後可能會有幾個兆字節。顯示圖像時,圖像傾向於未壓縮到RAM中。我也同意A.Ercan的發言。一堆450k的圖像可以真正爆炸RAM使用 –