본문 바로가기

나의 플랫폼/안드로이드

[Android] HeapSize확인!

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Log.d("DEBUG", "Heap Size : "+Long.toString(Debug.getNativeHeapAllocatedSize()));

위 로그를 사용하여 매번 출력해줘서 HeapSize에 변화를 확인한다.

참고로 전 Sky VegaS를 테스트 해봤을 때,

결과값이 약140000000 이상이 될 경우 핸드폰이 멈춰버리는 현상이 발생하였습니다.

HTC 디자이어 HD같은 경우는 그 전에 Out of memory가 발생하고 종료 되어버리구요.

Bitmap을 사용하거나 리스트 배열에 이미지를 다룰 경우 주의사항!

1. Bitmap을 계속 사용하지 않을 경우에는 삭제한다.

bitmap.recycle();
bitmap = null;

2. Bitmap을 불러들이는 부분이 매번 추가되지 않는지 확인한다.

특히, 저같은 경우는 Opengl 텍스처를 사용할 때 메모리가 펑튀기 되는 현상을 많이 봤음.

참고) Opengl 메모리 오류 
 
3. Canvas의 Paint를 사용할 경우.

draw함수를 계속 불렀을 때,

Paint paint = new Pain();
paint.setColor(Color.WHITE);

위 같이 클래스를 계속 생성해버리면 메모리에 계속 Paint가 쌓여버린다.
이럴때는 Paint를 전역 변수를 빼고,  Create부분에서 한번만 셋팅하자!