Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android虚拟机堆大小_Java_Android_Memory - Fatal编程技术网

Java Android虚拟机堆大小

Java Android虚拟机堆大小,java,android,memory,Java,Android,Memory,我无法理解android应用程序堆的大小。 是不是我可以从java和frome本地代码中分配的最大内存?如果是,那么为什么要在我的谷歌nexus S上使用此代码 Runtime rt = Runtime.getRuntime(); long maxMemory = rt.maxMemory(); Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory)); 数据集50331648=48MB 但是dumpsysmeminfo显示 本地人1

我无法理解android应用程序堆的大小。 是不是我可以从java和frome本地代码中分配的最大内存?如果是,那么为什么要在我的谷歌nexus S上使用此代码

Runtime rt = Runtime.getRuntime();
long maxMemory = rt.maxMemory();
Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory));
数据集50331648=48MB 但是dumpsysmeminfo显示 本地人13 16 12 84028 83457 18

我可以很容易地分配,比如74MB

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

嗯,堆大小实际上是一个编程概念,比Android的要多得多。你可以读到它,但事实上(简而言之)虚拟机使用了多少内存,它是独立于你的应用程序分配的


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

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


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

VM堆大小不适用于本机分配。