我正在开发一个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