본문 바로가기
[android] Context 관련된 메모리 누수 문제를 피하고 싶다면? 안드로이드, Context 관련된 메모리 누수 문제를 피하고 싶다면? 1. Activity의 Context 참조를 오랫동안 유지하면 안된다. Context 에 대한 참조는 Activity 의 생명주기와 동일해야 한다. 2. Activity Context 대신 Application Context 사용을 고려해야 한다. 3. Activity 내부 클래스의 생명 주기를 잘 관리하는 경우가 아니면, Activity 를 참조하고 있는 내부 클래스를 사용하지 말자. 특히 Static 으로 Context 를 참조하는 object 를 저장하는 것은 아주 위험하다. 대표적인 것은 Drawable. Context 를 참조하는 녀석들은 WeakReference 를 이용하는 것이 좋다. 4. GC는 Memoery Leak 에.. 2013. 8. 9.
[android] Drawable 이야기 안드로이드, Drawable 이야기 Drawable 은 View Container 이다.BitmapDrawable 은 이미지를 표시, ShapeDrawable 은 도형이나 그라데이션 등을 그린다. Drawable 들은 하나의 Constant State 를 공유한다. Bitmap 이 이 Constant State 에 포함되므로동일한 비트맵의 경우 한번 로드해서 모든 Drawable 이 공유한다.즉 메모리 절약이 된다. Drawable 이 공유되어 문제되는 사항은 mutate() 함수로 해결할 수 있다. ( 예) 하나의 imageview 를 통한 bitmap 수정이 다른 imageview 에 모두 영향을 미치는 문제. )Drawable.mutate() 를 호출해주면 Constant State 가 복제된다.여.. 2013. 7. 31.
반응형