我正在开发一款Android游戏应用程序,需要加载大量图像(png)。 我使用BitmapFactory.decodeStream来加载图像:
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inScaled = false;
opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeStream(context.getResources().openRawResource(context.getResources().getIdentifier(filenames.get(i),"drawable",context.getPackageName())),null,opt);
在Samsung S1 i9000(Android 2.3.3)上运行正常。 但是当我在三星S2 i9100(Android 4.1.2)上测试时,它会在我加载图像时崩溃。
我启动了DDMS来检查堆并发现了一些奇怪的东西。 似乎S1只为我的应用程序分配了5.494mb,当S2分配超过43.280mb!
如果有人能告诉我为什么这两部手机之间存在如此大的差异,我真的很感激。
屏幕截图image