2013-03-04 2 views
3

안드로이드 앱 힙 크기가 무엇인지 이해할 수 없습니다. Java와 frome 네이티브 코드에서 모두 할당 할 수있는 전체 maxumum 메모리입니까? 예 왜 내 구글 넥서스 S.이 코드에Android VM 힙 크기

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

dysplays하지만 dumpsys은 디스플레이를 기본 을 = 48메가바이트 을 meminfo 파일 50331648 경우 13 16 12 83,457 18

84028 나는 쉽게 74메가바이트

말을 할당 할 수 있습니다
int size = 1024*1024*74; 
char* s = new char[size]; 
+1

VM 힙 크기가 기본 할당에 적용되지 않습니다. –

답변

6

글쎄, 힙 크기는 실제로 Android 개념보다 프로그래밍 개념입니다. 그것을 here에 대해 읽을 수는 있지만, VM이 사용하는 메모리 양과 앱과 독립적으로 할당 된 것은 실제로 (단편)입니다.

앱에 할당 된 메모리가 동적으로 할당됩니다. 따라서 앱에 더 많은 메모리를 할당하도록 요청하면 앱이 성장하는 것을 볼 수 있습니다. 그러나 무기한으로 성장할 수는 없습니다.

1

힙 크기는 할당 할 수있는 RAM 크기입니다. 각 앱은 작은 Dalvik 가상 머신에 있습니다. 각 VM에는 할당 된 힙 공간이 있습니다.

그리고 각 장치에 대해 /system/build.prop 파일 내에 미리 정의 된 힙 크기 설정이 있습니다.