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

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

是否有任何Android版本要求设备具有更大的堆大小,以便我可以开始假设更大的那个并停止在内存上如此便宜?

在清单中是否还要求大堆的标志(来自API 11 – 蜂窝),或者是一个模糊的请求,设备甚至可能忽略它?

多年来,Android硬件已经有了很大的改进,但我们仍然需要在内存上如此便宜,即使设备现在有超过1GB的内存.奇怪的是,我们不能要求操作系统为我们提供特定数量的堆大小,并承诺我们不会再使用它了.

解决方法

好的,我终于找到了答案(感谢 this post):

所有Android版本(包括5个)的最小版本是16MB.

可以在这里阅读每个Android版本的要求:

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

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

所以,例如,在4.0.3 – 5上,最小堆大小是:

> 16MB:小/正常,ldpi / mdpi,或大,ldpi
> 32MB:小/普通有tvhdpi / hdpi,或大到mdpi
> 64MB:小/普通xhdpi,或大tvdpi / hdpi,或xlarge和mdpi.
> 96MB:400dpi的小/普通,或者带有tvhdpi / hdpi的xlarge
> 128MB:小/普通xxhdpi,或大xhdpi
> 192MB:小/普通,560dpi,400dpi,或xlarge,xhdpi.
> 256MB:小/普通xxxhdpi,或大xxhdpi
> 288MB:xlarge 400dpi
> 384MB:大于560dpi,或xlarhd与xxhdpi
> 512MB:xxxhdpi大
> 576MB:xlarge,560dpi
> 768MB:使用xxxhdpi进行xlarge

我找不到版本3.x的最小堆大小,但它可能与4.0.3相同.

对于2.1 – 2.3,最小堆大小是:

Device implementations with screens classified as medium- or
low-density MUST configure Dalvik to allocate at least 16MB of memory
to each application. Device implementations with screens classified as
high-density or extra-high-density MUST configure Dalvik to allocate
at least 24MB of memory to each application. Note that device
implementations MAY allocate more memory than these figures.

含义:

>中等屏幕或ldpi – 16MB
> hdpi或xhdpi – 24MB

我找不到版本1.6的最小堆大小,但它可能与2.1相同.

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

相关文章

Android 通过adb shell命令查看内存,CPU,启动时间,电量等...
Monkey Android app稳定性测试工具之Monkey使用教程 by:授客...
Android 常见adb命令 by:授客 QQ:1033553122 1、 查看所有已...
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...