为什么三星S1和S2为同一个APP分配不同的内存堆大小

时间:2013-07-11 11:24:38

标签: android heap-memory loadimage

我正在开发一款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.getRes‌​ources().getIdentifier(filenames.get(i),"drawable",context.getPackageName())),nul‌​l,opt);

在Samsung S1 i9000(Android 2.3.3)上运行正常。 但是当我在三星S2 i9100(Android 4.1.2)上测试时,它会在我加载图像时崩溃。

我启动了DDMS来检查堆并发现了一些奇怪的东西。 似乎S1只为我的应用程序分配了5.494mb,当S2分配超过43.280mb!

如果有人能告诉我为什么这两部手机之间存在如此大的差异,我真的很感激。

屏幕截图image

0 个答案:

没有答案