安卓虚拟机堆大小

3
我可以帮助您进行翻译。这段内容需要翻译为:

我不明白什么是Android应用程序堆大小。它是否是我可以从Java和本地代码中分配的总最大内存?如果是,那么为什么在我的Google Nexus S上出现了这个代码

Runtime rt = Runtime.getRuntime();
long maxMemory = rt.maxMemory();
Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory));

dysplays 50331648 = 48MB 但 dumpsys meminfo 显示 Native 13 16 12 84028 83457 18

而我可以轻松地分配74MB的空间

int size = 1024*1024*74;
char* s = new char[size];

1
VM堆大小不适用于本地分配。 - Raghav Sood
2个回答

5

嗯,堆大小实际上是一个编程概念,而不仅仅是Android相关的。你可以在这里阅读相关内容,但简单来说,它是虚拟机正在使用的内存量,与您的应用程序独立分配。

分配给您的应用程序的内存是动态分配的。如果您要求您的应用程序分配更多的内存,您将看到其增长。但它不可能无限增长。


1
堆大小是可以分配的RAM量。每个应用程序都在一个小型Dalvik虚拟机上运行。每个虚拟机都会分配一些堆空间。
此外,每个设备内部都有预定义的堆大小设置,存储在/system/build.prop文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接