2010-06-20 3 views
5

현재 안드로이드 OS를 사용하는 휴대 전화 카메라로 찍은 이미지를 으로 처리하는 응용 프로그램을 개발하는 것을 고려 중입니다. 결정을 내리기 전에 일부 연구를 수행했으며 은 Dalvik VM에 의해 할당 된 메모리의 한계에 관한 일부 불만 사항이 있다는 것을 알아 냈습니다. 이는 처리 및 처리가 필요한 응용 프로그램으로 제한되는 것 같습니다. 이미지. 예제 3 사진을 카메라로 찍은 후, 처리 과정에서 필터, 변환 및 기타 유형의 수학 연산을 적용 할 때 어떤 제한이 있습니까?Dalvik 메모리 할당 - 기본 제한을 변경하는 방법?

Android 1.6 OS를 사용하여 각 응용 프로그램 (이 기본값 이 16MB 임)의 Dalvik VM에서 할당 한 메모리의 기본값 인 을 변경할 수 있는지 알고 싶습니다. 아무도 나를 밖으로 도울 수있는 이것으로 보지 못했습니까?

또한 (여기에 해당 : http://static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/pt-PT//compatibility/android-2.1-cdd.pdf ) 안드로이드 2.1 호환성 정의 문서에서 읽고 가 24메가바이트 또는 더 큰에 16메가바이트에서 달빅 VM에 의해 메모리의 할당을 변경할 수 있습니다 필요한 경우에는 금액이 있지만, 어떻게 할 수 있는지는 어디에도 언급되어 있지 않습니다.

누군가가 이전에 이러한 문제를 조사하고 나에게 도움이나 힌트를 주면 크게 감사하겠습니다. 감사합니다.

+0

: 당신은 예를 들어, ADB 쉘 setprop을 통해 기본 전역 힙 크기를 변경할 수 있습니다 –

답변

7

일반적인 장치에서는 응용 프로그램의 힙 제한을 변경할 수 없습니다. OEM에 의해 하드 코딩됩니다. 모든 권한을 가진 일부 장치 용으로 개발할 경우 Dalvik 시작 스크립트를 수정하여 더 많은 힙 공간을 허용 할 수 있습니다.

+0

당 24 메가 바이트 이미에 당신이하는 방법에 대한 정보를 가지고 있습니까 응용 프로그램 당 더 높은 기본 힙 크기에 관한 Dalvik 시작 스크립트를 수정 하시겠습니까? 그 전화가 뿌리를 내려야합니까? 나는 묶여있을/장치와 함께 배포되는 응용 프로그램을 개발 중입니다. 어디서나 완전한 제어가 가능하고 뿌리가 내리지는 않습니다. –

+2

전화에 대한 완전한 액세스 권한이 필요합니다. 시작 스크립트를 수정하면 루트 권한을 의미합니다. 루트 액세스 - 편집 init 스크립트가있는 경우 (root/init에 있음).rc) 및 을 찾습니다. "setprop ro.FOREGROUND_APP_MEM 1536" – reflog

+4

Dalvik의 관리 힙 제한에 대해 공급 업체/[회사]/[제품] /system.prop을 편집하고 "dalvik.vm.heapsize = 24m"을 추가 또는 업데이트하려고합니다. ". 이것은 /system/build.prop에서 끝나고 결국 -Xmx 인수가됩니다. – fadden

2

avd의 config.ini에서 vm.heapSize 항목을 변경하여 변경할 수 있습니다. 예를 들어,

vm.heapSize=64 

을 config.ini에 쓸 수 있습니다. 해당 항목이 없으면 새 항목을 추가 할 수 있습니다.

그러나 vm.heapSize은 스킨으로 덮어 쓸 수 있습니다. 스킨의 경로에 hardware.ini이 있으며 기본 설정 인 vm.heapSizehw.ramSize이 포함되어있어 값을 무시할 수 있습니다. 이 문제를 해결하려면이 문제를 설정할 수 있습니다.

skin.path=720x1280 
skin.name=720x1280 

숫자는 중요하지 않으며, 너비 (x) 형식이어야합니다. BTW

setprop dalvik.vm.heapsize 128m 
1

넥서스 원의 기본 힙 크기는 응용 프로그램