2013-04-08 29 views
0

我正在開發的Android技術 一個大的項目,有時我有這樣一些例外(內存不足錯誤)的行爲,我做了一個異常發生時是什麼,重新打開應用程序怪在小型設備上 Android應用

什麼,它讓以前的進程打開的發生,與新的應用實例中打開一個新的進程

我試圖讓 完成() 殺死進程 System.exit

關閉應用程序並重新打開它,但沒有爲我工作

任何幫助嗎?

+0

實際應用程序的工作是什麼?並且在你的應用程序中使用圖像或任何媒體? – Ajay 2013-04-08 08:51:30

+0

是你在你的應用程序中使用大量的圖像文件。 – 2013-04-08 08:51:56

+0

是的,我從服務器端後端加載數據和圖像,並將它們存儲在設備的本地緩存中。 – 2013-04-08 08:53:04

回答

0

當設備中的RAM被充分利用時,內存不足會發生,系統會拋出該錯誤並終止/重啓進程。您需要找到適當的地方,使用大部分內存並正確處理內存。內存不足通常是由於較差的位圖/圖像處理而發生的。檢查你的代碼,你在哪裏處理Bitmaps/ImageViews/PNG等。

0

Android的默認堆大小几乎適用於每個重負載作業。跟蹤你的代碼,並找到代碼中的內存消耗部分,並嘗試優化它們。爲此,請在Eclipse中的DDMS視圖中使用HEAP選項卡。

1

首先你必須照顧的事情是堆大小。你可以跟蹤當你運行應用程序時消耗了多少內存。在DDMS的視角下,有一個堆標籤,它會告訴你運行應用程序時消耗多少內存。 你正在測試的是什麼版本的android? Android Os會爲每個應用程序分配一些內存來運行。在Android 2.2中,16MB將被分配給一個應用程序。版本2.3爲應用程序分配24Mb,Android 3.0分配42Mb。嘗試測試不同版本的Android,你會知道..

0

是的,這是問題。我最近面臨類似的問題,然後我調整我的images然後我的問題解決了。試圖找出一種方法如何減少您從sever sideback-end加載的size ofimages