마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

핸드폰 기종 문의드립니다.

0 추천
안녕하세요 개발자입니다.

 

이번에 마켓에 앱을 오픈하였는데

 

테이큰, 갤럭시m, 갤럭시 지오, 옵티머스lte

이런곳에서 아웃오브메모리 가 발생하여 앱이 죽는다고 올라오는데..

 

다른 개발자 분들은 이런 오류는 어떻게 처리하시나요?ㅠㅠ

 

또 베가x인데 베가x에서 테스트했을때 잘됫는데 다른 베가x에서는 안된다고하고..

앱을 오픈하는것도 쉬운일은 아닌거 같습니다.

 

조언을 듣고자 질문 남겨드려요 ㅠㅠ
스릉스릉 (1,260 포인트) 님이 2013년 3월 14일 질문

2개의 답변

0 추천
전 예전에 ACRA 라는 에러 리포팅 라이브러리를 사용했었는데요, 요즘엔 구글 애널리틱스 사용합니다~ 구글 애널리틱스를 심어보세요~ 그리고 outofmemory면 비트맵 관련 작업을 하시나요???  뭐 저사양 폰에서 그냥 보여주기 귀찮다 싶으면 try ~ catch로 outofmemory 났을 때 적절하게 그냥 유저한테 알려주던가, 아니면 비트맵 관련 작업시에 메모리를 줄이는 여러가지 팁들을 참고해 보세요~
잇힝국대통령 (3,750 포인트) 님이 2013년 3월 14일 답변
답변 감사합니다.

폰기종에 다 맞추려다 보니 쉽지가 않네여 ..
0 추천
아웃오브메모리는 Exception이 아니라 Error이기 때문에 try~catch로 잡을 수 없습니다.

 

이게 생기는 여러 이유 중에 하나가

리스트뷰, 그리드뷰 등에서 비트맵을

사용하지 않을 때에 해제하지 않고 계속 리스트를 불러올때 생기더라구요.

어댑터를 바꾸거나 데이터가 바뀌면

이전의 비트맵들을 리사이클 해주는 작업이 필요하구요.

비트맵이 들어가는 리스트나 그리드 같은 경우에는

리스트 페이징 처리가 정말 중요한데요.

서버 부하도 줄일 수 있고, 단말기에서 메모리도 어느 정도 확보할 수 있습니다.

 

또 하나는.. 텍스트뷰에 정말 엄청나게 많은 글자를 적어도 발생하는데요.

이건 기획쪽이랑 조율해서 보여주는 글자를 줄이는 식으로 바꾸는게 좋습니다.

 

매니페스트에 largeHeap같은 옵션이 있는데 이것도 알아보시구요.

비트맵 샘플링 같은것도 해보시구요. 워낙 많이 발생하는 이슈라서

구글링 해 보시면 자료가 엄청나게 많을 겁니다.
퐁풍 (8,740 포인트) 님이 2013년 3월 14일 답변
OutOfMemoryError를 catch해서 처리한다는게 좋은 방법은 아니지만 try~catch를 사용해서 그냥 안보여줄수는 있습니다.

http://stackoverflow.com/questions/1692230/is-it-possible-to-catch-out-of-memory-exception-in-java
...