我不明白什么是Android应用程式堆大小。
我可以同时从java和frome本机代码分配总的最大内存吗?如果是,那么为什么在我的Google nexus S上使用此代码

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

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

我可以轻松分配74MB
int size = 1024*1024*74;
char* s = new char[size];

最佳答案

好吧,堆大小实际上是一个编程概念,远不止是Android。您可以阅读它here,但实际上(简短地说)是VM正在使用多少内存,并且独立于您的应用程序进行分配。

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

10-08 17:06