3

Androidアプリのヒープサイズがわかりません。Javaとネイティブコードの両方から割り当てることができる全体的な最大メモリですか? はいの場合、なぜ私のGoogle nexus S.このコードで

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

表示は 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 に答える