0

我很难为此找到更新的答案。

到目前为止,我的目标是让我的资源<16mb。但是随着我走得越远,这变得越来越难,我的意思是,一个 1000x1000 .Png 文件使用大约 1mb。

显然我的目标是让它尽可能小,但我应该开始担心什么尺寸?计划为 android >2.1 发布

4

2 回答 2

1

您将获得的最低堆空间是16 MBIIRC。您可能会被分配到64 MB,甚至更多,但您应该始终尝试在 16 MB 以下进行操作。请记住,如果您可以获得更多堆空间,并且您确实尝试使用它,您最终可能会从内存中替换其他应用程序,并给用户带来一些小问题或在某些情况下是大问题。

并不是你不能获得更多的空间。事实是,您应该尽可能让您的应用成为 Android 公民,并尽可能对设备友好。

于 2012-09-30T16:14:49.223 回答
0

您可以通过以下方式获得最大的 hep 大小:

    Log.d(TAG,"Memory Class: " + ((ActivityManager) getSystemService(ACTIVITY_SERVICE)).getMemoryClass());
    Log.d(TAG,"Heap size: " + Runtime.getRuntime().maxMemory());

如果您正在加载大 PNG 文件,您应该寻找有关如何在 Android 上处理大图像的最佳实践,但请记住,您的一些 BitmapFactory 选项对图像的加载方式有巨大影响:

-inScaled 设置后可能会在具有高屏幕密度的新设备中将位图内存大小增加 2 或 3 倍,

-ARGB 类型可能会从每像素 2 个字节(RGB_565 和 ARGB_4444)变为 4 个字节(ARGB_8888),因此再次乘以 2。

祝你好运。

于 2012-09-30T16:58:08.550 回答