간혹 OpenGL 기반 Application이나 메모리 사용량이 많은 Application을 개발할 때, Heap이 부족하여, 메모리 할당을 받지 못해 Application이 정상적으로 동작하지 않는 경우가 있다. Application단에서 이를 해결할 방법은 없으며, Framework에서 수정되어야 한다.
파일: android/frameworks/base/core/jni/AndroidRuntime.cpp
수정 전: property_get("dalvik.vm.heapsize", heapsizeOptsBuf+4, "16m");
수정 후: property_get("dalvik.vm.heapsize", heapsizeOptsBuf+4, "48m");
만약 48MiB도 작다면, 맘껏 늘려보자. :-p
[Update]
욱's님에 의하면, build.prop에 있는 dalvik.vm.heapsize의 값을 원하는 값으로 설정해줘야 한다고 합니다.
댓글 2개:
안녕하세요, 검색하다가 방문하게 되었습니다.
property_get("dalvik.vm.heapsize", heapsizeOptsBuf+4, "48m");
위의 명령어에서 3번째 인자인 "48"은 2번째 인자를 가져오지 못했을때 3번째 인자로 설정하게 됩니다.
따라서 위와 같이만 하시면 48로 설정이 안되고요...
보통 build.prop에 있는 dalvik.vm.heapsize의 값을 원하는 값으로 설정해주셔야 합니다.
혹시 제가 잘못 알고 있다면 알려주세요.
dltkddnr0502@gmail.com
아. 그렇군요. get 함수라 뭔가 이상하긴 했는데 현재 플랫폼 빌드를 할 일이 없어서 확인하기가 힘드네요. 좋은 정보 감사합니다. 문서 업데이트하도록 하겠습니다.
댓글 쓰기