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

addView() 가 많을때 속도

0 추천

어떤 화면을 구성하고 있는데 

백그라운드로 Data를 가지고 옵니다.(AsyncTask로작업)

약 300개를 가지고 오는데

화면이 테이블형식이라 각각 View마다 Width가 틀려서 테이블형식

LinearLayout안에 TextView,ImageView등 여러 아이템이 있습니다.

코드로 LinearLayout에 addView를 해주는데요

AsyncTask로 Data를 얻어 오고 

백그라운드 작업이 끝나면 UI상에서 addView를 300번을 해주는데(for문으로)

이게 작업이 너무 오래 걸리는거 같습니다.

addView작업만 약 5초가 걸리네요 이게 정상인가요?

addView처리가 전부 끝나고 로그를 보게 되면

Choreographer(21159): Skipped 341 frames!  The application may be doing too much work on its main thread.

이런 로그가 나오게 되는데 어떤 문제인지 모르겠네요..;;

 

도움좀 부탁드립니다.

 

 

뱀휅휅 (1,170 포인트) 님이 2014년 10월 14일 질문

3개의 답변

0 추천
정상이구요,

LIstView나 GridView를 쓰세요.
익명사용자 님이 2014년 10월 14일 답변
0 추천
코드 좀 볼 수 있을 까요. 참고하고 싶습니다.
chqhwk (300 포인트) 님이 2015년 7월 3일 답변
0 추천
View 가 많아지면 performance가 떨어집니다.

만약 스크롤 기능같은게 있으시면 fps의 저하가 심하실거에요.

구현하기에는 view로 관리하는게 확실히 편하구요. 만약 performance가 필요한 경우 생기면 직접 구현하시는 방법이 좋습니다.

보통 canvas에다가 직접 드로잉 하는 방식을 사용합니다.

부드러운 화면 움직임 등이 필요하면 되도록 view는 적게 쓰는게 좋습니다.

레이아웃 구성하는것도 퍼포먼스 생각하시면서 구현 하시면 좋은 어플을 만들 수 있습니다.
ㄱㄴㄷ 님이 2015년 7월 3일 답변
...