안드로이드 개발 질문/답변
(글 수 358)
원래 C로 만들어진 것을 안드로이드 앱으로 만들려고합니다.
double [][][]a = new double[256][256][256];
을 사용하려고 만들었습니다.
6개정도 필요합니다.
자바에서 배열크기 C에서와의 계산방식이 다르니
저렇게 하면 배열하나에 메모리가 16메가 이상이 될것으로 생각됩니다.
각각의 배열에 해당하는 값을 가져다가 쓰려고 합니다.
방법이 없을까요?
배열은 프로그램실행시 한번만 고정된 값(예상되는,바뀌지 않는)이 들어가게되고 나중에는 바뀌지 않습니다.
예를 들면
a[j][i] = cos( j*pi ) + i; 이런식으로 고정된 값이 들어가게 됩니다. 나중에 프로그램에서 그값을 가져다 쓰려고 하는 겁니다.
java.lang.OutOfMemoryError
뜹니다.
조언 부탁드립니다.
2,3메가 정도 되는 이미지 파일 하나 불러오는데도 메모리 문제 때문에 줄여서 로드해야 되는데요^^;
그렇게 많은 메모리를 사용하면 만약 테스트 하시는 폰들에서 된다고 해도 저사양 폰들이나 일부 폰의 경우 제대로 안될 확률이 큽니다.
그리고 안드로이드의 경우 시스템에서 임의로 메모리가 부족하거나 할 경우 강제로 회수해 가는 경우가 많기 때문에
그때마다 메모리를 할당하고 로드하고 하려면 사용하는데 매우 짜증날꺼구요.
제 생각엔 그걸 해결하려고 하기 보다 다른 방법을 생각해보시는게 좋을꺼 같네요.
만약 그러한 방식으로 꼭 만들어야 된다고 하면 모바일(안드로이드) 환경에 적합하지 않은 앱이라고 할 수 있겠습니다.