안녕하세요!
안드로이드 개발중에서 메모리 체크관련사항이 궁금하여 이렇게 질문 올립니다!
개발중인 어플이 있는데 3d 모델을 불러오면 메모리가 늘어나게 되고 그러다가 어플이 강제종료되는 현상이 있습니다.
그래서 모델을 불러올때 현재 디바이스의 전체 메모리, 사용 메모리, 여유 메모리를 분석하여 해당 문제에 대한 대비책을 세우려고 하는데요
안드로이드 스튜디오에서 기기를 연결한 상태에서 Run 하였을때 메모리를 실시간으로 확인할 수 있는 방법엔 어떠한것이 있을까요?
현재 제가 알아본 방법은
1.스튜디오의 ADM(Android Device Monitor)에서 Heap 을 찍어보는방법
2.long totalMemory = Runtime.getRuntime().totalMemory();
long freeMemory = Runtime.getRuntime().freeMemory();
long maxMemory = Runtime.getRuntime().maxMemory();
long nativeHeapFree = Debug.getNativeHeapFreeSize();
long nativeHeapAllocatedSize = Debug.getNativeHeapAllocatedSize();
long nativeHeapSize = Debug.getNativeHeapSize();
이러한 형식으로 직접 코드에 추가하여 로그에 띄우는 방법
3. 이클립스의 MAT
이렇게 파악하고 있습니다.
가장 먼저 3번은 이클립스가 아니라 패스하였고, 1번의 경우는 Heap Size가 나오는데 48m 이상 넘어가지 않아서 솔직히 어떤 숫자를 띄어주는건지 잘 모르겠습니다...
2번은 어플이 실행되고 각종 기능이 수행되며 실시간으로 돌아가면서 로그를 띄어주어야 하는데 어느 특정 코드에서만 로그를 띄어주다보니 어플의 전체적인 메모리 확인이 불가하다고 판단하였습니다.
혹시 어플의 시작과 동시에 메모리를 실시간으로 확인할 수 있는 방법이 있을까요?
현재 테스트 디바이스는 안드로이드 태블릿이며 5.0.2 버전 RAM은3GB 입니다!
두서없는 글 봐주셔서 감사합니다!
좋은하루 되세요!^^