3

我不明白什么是 android 应用程序堆大小。我可以从 java 和 frome 本机代码分配的总体最大内存吗?如果是,那么为什么在我的 google nexus S 上。这段代码

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

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

我可以轻松分配 74MB

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

2 回答 2

5

好吧,堆大小实际上是一个编程概念,远比它是一个 Android 概念。您可以在此处阅读有关它的信息,但实际上(短篇小说)VM 正在使用多少内存并且它是独立于您的应用程序分配的。

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

于 2013-03-04T14:16:55.570 回答
1

堆大小是可以分配的 RAM 量。每个应用程序都位于一个小型 Dalvik 虚拟机上。每个 VM 都会分配一些堆空间。

/system/build.prop而且,每个设备的文件内部都有一个预定义的堆大小设置。

于 2013-03-04T14:20:15.523 回答