모든 프레임을 메모리에 별도의 비트 맵으로로드하고 스레드 루프를 통해 imageViews
에 할당하여 gif의 애니메이션을 적용하는 앱이 있습니다.Android 앱 메모리 제한
imageViews
은 조각 상에 있으며, 단편은 pageViewer
에 로딩된다. 페이지 뷰어의 화면 제한을 1로 설정 했으므로 대부분 한 번에 세 조각/gif를 처리합니다.
11-25 17:28:34.269: E/dalvikvm-heap(524): 292000-byte external allocation too large for this process.
11-25 17:28:34.269: E/(524): VM won't let us allocate 292000 bytes
나는 2.3.3에 있지만 4.0.3 에뮬레이터 또는 동일한 오류가 발생합니다 : 세 GIF를 동시에 메모리에있는 경우
지금 2.1 에뮬레이터에 나는이 오류 내 갤럭시 탭 10.1 4.0.4 실행 - 그 두 잘 실행하고 상당히 빠릅니다.
1024x999 3.2MB gif를로드하려고 시도했지만 4.0.3 에뮬레이터도 실패했지만 내 태블릿에서도 계속로드가 중단 될 때까지 여러 가지 gif가 표시됩니다. 이 앱은 약 250-300MB의 RAM을 사용했습니다.
실제 장치가 어떻게 작동하는지 예측할 수있는 방법이 있습니까? 더 높은 API 버전을 타겟팅해야합니까?
gif가 웹에서로드 되었습니까, 아니면 사용자가 제공합니까? 리소스 인 경우 대신 애니메이션을 사용해야합니다. 최근에 다음 질문이있었습니다. http://stackoverflow.com/questions/12977039/android-loading-images-with-a-delay/12978091#12978091 – dmon
또한 앱당 한도는 기기의 메모리보다 훨씬 작습니다 . – dmon
"앱은 약 250-300MB의 RAM을 사용했습니다." 너무 비싸다. http://stackoverflow.com/questions/2630158/detect-application-heap-size-in-android 일부 장치는 심지어 – zapl