Android版本是否有最小的堆大小?

许多帖子都讨论过Android堆大小,到目前为止,我发现关于最大堆大小的唯一常见事情是它至少有16MB,但这是API 3以来的限制。为了使用更多的内存,人们会建议使用NDK或超出“正常”Android开发的任何内容。

是否有任何Android设备版本需要设备具有更大的堆大小,以便我可以开始假设更大的堆内存,并且不再在内存上如此便宜?

是否还有关于清单内部大堆(来自API 11 - 蜂窝)的标志的要求,还是该设备甚至可能忽略它的模糊要求?

只是在过去的几年中,Android硬件已经有了很大的改进,但即使设备现在拥有超过1GB的内存,我们仍然需要在内存上如此便宜。 奇怪的是,我们无法从操作系统要求我们获得特定数量的堆大小,并承诺我们不会再使用这种堆。


好的,我终于找到了答案(感谢这篇文章):

所有版本的Android(包括5)的最小值为16MB。

每个android版本的需求可以在这里阅读:

http://source.android.com/compatibility/downloads.html

您可以通过打开CDD文件并搜索“运行时兼容性”(或适用于旧版本的“虚拟机兼容性”)来了解它们。 同样,您可以通过搜索“内存和存储”来找到最低内存要求,但我认为这只是系统本身的要求。

因此,例如,在4.0.3-5上,最小堆大小是:

  • 16MB:小/普通ldpi / mdpi,或者大ldpi
  • 32MB:小型/普通tvhdpi / hdpi,或大型mdpi
  • 64MB:小型/普通xhdpi,或大型tvdpi / hdpi,或xlarge与mdpi。
  • 96MB:小型/普通400dpi,或xlarge,带tvhdpi / hdpi
  • 128MB:小型/普通xxhdpi,或大型xhdpi
  • 192MB:560dpi的小尺寸/普通尺寸,400dpi的大尺寸尺寸,或xhdpi的xlarge尺寸。
  • 256MB:使用xxxhdpi的小型/普通型,或使用xxhdpi的大型
  • 288MB:400dpi的xlarge
  • 384MB:560dpi大,xxhdpi大小
  • 512MB:与xxxhdpi大
  • 576MB:560dpi的xlarge
  • 768MB:用xxxhdpi放大
  • 我找不到版本3.x的最小堆大小,但它可能与4.0.3相同。

    对于2.1 - 2.3,最小堆大小为:

    屏幕分类为中密度或低密度的设备实现必须配置Dalvik为每个应用程序分配至少16MB的内存。 屏幕分类为高密度或超高密度的设备实现必须配置Dalvik为每个应用程序分配至少24MB的内存。 请注意,设备实现可以分配比这些数字更多的内存。

    含义:

  • 中等屏幕或ldpi - 16MB
  • hdpi或xhdpi - 24MB
  • 我无法找到版本1.6的最小堆大小,但它可能与2.1相同。

    此外,我无法找出大堆标志为每个Android版本(从3.0开始)应该做什么。

    链接地址: http://www.djcxy.com/p/60621.html

    上一篇: Is there a minimal heap size for Android versions?

    下一篇: How to read data when some numbers contain commas as thousand separator?