我正在開發一個android應用程序,它在一個頁面中有七個滑塊。即有七個問題,每個問題對應一個滑塊。用戶可以通過在每個滑塊中滑動指針來回答問題。在S3這個頁面崩潰。我們正在爲此部分使用高分辨率圖像。Android - S3中的內存不足問題
這是由於S3中堆的大小較小嗎?我們可以解決這個問題嗎?有什麼方法可以解決這個問題嗎?對於這個框架,我們是否需要使用質量較差的圖像(這是不可取的)?
我正在開發一個android應用程序,它在一個頁面中有七個滑塊。即有七個問題,每個問題對應一個滑塊。用戶可以通過在每個滑塊中滑動指針來回答問題。在S3這個頁面崩潰。我們正在爲此部分使用高分辨率圖像。Android - S3中的內存不足問題
這是由於S3中堆的大小較小嗎?我們可以解決這個問題嗎?有什麼方法可以解決這個問題嗎?對於這個框架,我們是否需要使用質量較差的圖像(這是不可取的)?
使用下面的方法來設置在ImageView的圖像從this環節得到了我
public Bitmap ShrinkBitmap(String file, int width, int height){
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height);
int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width);
if (heightRatio > 1 || widthRatio > 1)
{
if (heightRatio > widthRatio)
{
bmpFactoryOptions.inSampleSize = heightRatio;
} else {
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
bmpFactoryOptions.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
return bitmap;
}
http://www.youtube.com/watch?v=_CruQY55HOk。視頻中的人給出了關於使用System.gc();的警告。 – Raghunandan
對不起,我的視頻流慢,所以我無法觀看視頻,但我已經使用system.gc(),它並沒有給我造成任何麻煩 –
@ Auto-Droid檢查鏈接http://stackoverflow.com/問題/ 2414105 /爲什麼 - 是 - 它 - 一個壞實踐通話系統-GC。 – Raghunandan
你是loading Bitmaps Efficiently?
如果是的話,那麼你可以嘗試在AndroidManifest文件您<application>
標籤使用
android:largeHeap="true"
增加堆的大小。
警告:
- 較大的堆大小意味着更長的(垃圾收集)GC時間。
- 如果您的應用程序堆大小較大,則會顯着降低其他應用程序的速度,用戶很快就會知道您的應用程序存在問題。
- 請不要僅僅因爲出現內存錯誤而使用此選項。
http://www.youtube.com/watch?v=_CruQY55HOk。更多的堆內存,更頻繁的垃圾收集。視頻中的人給出了關於使用大堆的大警告。 – Raghunandan
感謝您的快速響應。我需要知道的第一件事是,這是可能解決這個問題在S3與更高分辨率的圖像? –
@Raghunandan我知道,但你可以使用它,如果你需要你的應用程序該死的執行沒有更多的選項可用。 –
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html。
有效地加載位圖。請參閱主題下的鏈接將縮小版本加載到內存中。
未使用時回收位圖。
http://www.youtube.com/watch?v=_CruQY55HOk。這個談話是關於內存管理。如果運行內存泄漏,您可以使用MAT分析器來查找並解決問題。該視頻還討論了堆分析儀的使用情況。
logcat的PLS工作???? –
可以發佈你的屏幕快照嗎?你在一個屏幕上顯示所有7個相關圖像的問題。 – Raghunandan