2013-12-22 38 views
0

我有一個應用程序的Android 3.0和更高的地方,我必須顯示一些大的位圖。位圖已經縮放到他們必須顯示的大小。我已經在清單文件中使用了largeheap=true,但仍然收到OutOfMemory錯誤。我現在並沒有像在developer.android上提到的displaying bitmaps efficiently那樣使用LRU緩存。我有以下懷疑。Android應用程序OutOfMemory。位圖

  1. 我應該試着抓住錯誤並完成剩下的工作嗎?

  2. 我必須使用bitmap.recycle()函數。在android 3.0之後,沒有必要使用bitmap.recycle(),因爲內存不是在本地分配的,正如前面提到的,這個函數釋放了本地對象。

  3. 我應該使用在caching bitmaps中提到的LRU緩存機制嗎?不會增加我的應用程序的內存消耗,因爲我會將位圖存儲在緩存中?

  4. 是否有任何適當的示例或體系結構來顯示解釋LRUcache機制的位圖。閱讀網絡上的所有理論都是令人困惑的。

  5. BitmapFactory.Options的inBitmap字段是否也有助於減少內存?

我對我的應用程序有內存限制,我希望它使用盡可能少的內存。請指教。

回答

0

在開發人員android Displaying Bitmaps Efficiently上的這篇文章中解釋了管理內存和保持質量的最佳方法。希望這回答您的查詢。

+0

我已閱讀提到的鏈接。但我有5點以上的困惑,因爲那裏有很多理論。 –

+0

我知道。但從長遠來看,它會幫助你。我也被困在同樣的問題,它幫助了我。你將來會製作更多的應用程序,這些知識將幫助你。這是最有效的方式。祝你好運。 – Prachur