반응형
부왘ㅋㅋㅋㅋㅋㅋㅋㅋ!!
오랜만에 미친듯한 삽질을 경험하게 해주는 안드로이드에게 경의를 표한다.
안드로이드 개발을 하는 중에 내가 만든 페이지가 자꾸 느려지는 현상을 발견하고 로그를 찍어서 로그캣에서 느려지는 구간을 찾았다. 문제는 이 문제점을 찾는데 너무 많은 시간을 소비했다.
나의 코딩 스타일에 문제가 있나 의구심이 들었는데, 안드로이드만에 독특한 문제였다.
문제점은 레이아웃 xml에 있었는데 ListView를 구현할 때 getView가 중복 호출되면서 미묘하게 시간을 잡아먹는 문제였다.
찾아보니 많은 사람들이 나와 같은 문제를 겪고 있었다.
Reference
[1] 해결법 1 : http://www.androidpub.com/41674
[2] getView 호출에 대한 좋은 설명을 해주신 개발자분 : http://myelf.egloos.com/2723978
[3] getView를 구현할 때 성능을 고려한 좋은 설계 방안 : http://blog.naver.com/PostView.nhn?blogId=dythmall&logNo=30095935698&parentCategoryNo=8&viewDate=¤tPage=1&listtype=0
결론
결론은 위의 [1]에서 나온대로 xml파일에서 크기를 wrap_content로 지정해준 것이었다.
그런데, 나의 경우는 상위 뷰의 가로세로를 fill_parent로 지정해주었음에도 불구하고 자꾸 중복호출되는 문제가 생겼다. 이유는 상위 뷰만이 아니라 ListView 자신의 가로세로 크기도 꼭 fill_parent로 해주어야 했다.
오랜만에 미친듯한 삽질을 경험하게 해주는 안드로이드에게 경의를 표한다.
안드로이드 개발을 하는 중에 내가 만든 페이지가 자꾸 느려지는 현상을 발견하고 로그를 찍어서 로그캣에서 느려지는 구간을 찾았다. 문제는 이 문제점을 찾는데 너무 많은 시간을 소비했다.
나의 코딩 스타일에 문제가 있나 의구심이 들었는데, 안드로이드만에 독특한 문제였다.
문제점은 레이아웃 xml에 있었는데 ListView를 구현할 때 getView가 중복 호출되면서 미묘하게 시간을 잡아먹는 문제였다.
찾아보니 많은 사람들이 나와 같은 문제를 겪고 있었다.
Reference
[1] 해결법 1 : http://www.androidpub.com/41674
[2] getView 호출에 대한 좋은 설명을 해주신 개발자분 : http://myelf.egloos.com/2723978
[3] getView를 구현할 때 성능을 고려한 좋은 설계 방안 : http://blog.naver.com/PostView.nhn?blogId=dythmall&logNo=30095935698&parentCategoryNo=8&viewDate=¤tPage=1&listtype=0
결론
결론은 위의 [1]에서 나온대로 xml파일에서 크기를 wrap_content로 지정해준 것이었다.
그런데, 나의 경우는 상위 뷰의 가로세로를 fill_parent로 지정해주었음에도 불구하고 자꾸 중복호출되는 문제가 생겼다. 이유는 상위 뷰만이 아니라 ListView 자신의 가로세로 크기도 꼭 fill_parent로 해주어야 했다.
반응형
'Devlopment > Mobile' 카테고리의 다른 글
[안드로이드] TabActivity에서 startActivityForResult의 결과 받기 (0) | 2011.08.01 |
---|---|
java.io.IOException: Unable to open sync connection! 해결법 (6) | 2011.07.12 |
ListView 스크롤시 검은색 배경으로 바뀌는 문제 (0) | 2011.07.12 |
안드로이드 GPS 위치 수신 (0) | 2011.07.12 |
Android 타이틀 바 관련. (0) | 2011.07.11 |
[Android] 알림 - AlertDialog, Toast (0) | 2011.06.27 |
모바일상에서의 Network Programming (1) | 2011.06.23 |
Android Sensor 활용 (0) | 2011.06.22 |
Android 진동 다루기 (0) | 2011.06.22 |
Android Camera (0) | 2011.06.22 |