我正在开发一个需要加载大量图像(png)的 Android 游戏应用程序。我使用 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);
它在三星 S1 i9000(Android 2.3.3) 上运行良好。但是当我在三星 S2 i9100(Android 4.1.2)上测试它时,它会在我加载图像时崩溃。
我启动 DDMS 来检查堆并发现了一些奇怪的东西。当 S2 分配超过 43.280mb 时,似乎 S1 只为我的应用程序分配了 5.494mb!
如果有人能告诉我为什么这两款手机之间存在如此大的差异,我将不胜感激。
截图图片