Android VM堆大小

Heo*_*hiy 3 java memory android

我无法理解什么是android app堆大小.它是整体最大内存,我可以从java和frome本机代码分配?如果是,那么为什么在我的谷歌nexus S.这个代码

Runtime rt = Runtime.getRuntime();
long maxMemory = rt.maxMemory();
Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory));
Run Code Online (Sandbox Code Playgroud)

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

我可以轻松分配说74MB

int size = 1024*1024*74;
char* s = new char[size];
Run Code Online (Sandbox Code Playgroud)

Dig*_*ara 6

好吧,堆大小实际上是一个编程概念,远远超过它的Android.你可以在这里阅读它,但它确实(简短的故事)VM使用了多少内存,它是独立于你的应用程序分配的.

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