android - improving layout performance
레이아웃 성능 최적화
1. Hierarchy Viewer를 사용해 Layout를 검사
- 사용된 뷰 수와 Measure, Layout, Draw 처리 시간을 이용해 성능 저하를 유발하는 뷰를 찾을 수 있다.
2. Layout 재사용
1) 재사용 할 수 있는 공통 뷰를 Layout을 작성
2) <include/> 태그를 이용하여 뷰에 사용
3) 재사용 할 수 있는 뷰의 Layout 작성시 <merge/> 태그를 활용하면 불필요한 View
Group 사용을 줄여준다.
3. 필요한 경우에 뷰를 로딩
- ViewStub을 이용하면 크기도 없고 보여지지 않는 뷰를 사용자가 원하는 시점에 setVisiblity()나 inflate() 메소드의 호출로 원하는 뷰를 생성하여 표시할 수 있다.
4. ListView의 스크롤 부드럽게 만들기
- 스크롤을 부드럽게 하려면 Main Thread(UI Thread)를 idle 상태로 유지 해야함.
1) Background Thread를 사용해라
- AsyncTask 등을 사용하여 디스크 I/O, 네트워크 I/O, DB I/O 등의 작업 수행은 Background Thread를 사용해야 한다.
2) getView에서 findViewById() 를 사용하여 View를 얻을때 ViewHolder를 사용하여 한번 find된 View를 다시 find하지 않게 하라.
1. Hierarchy Viewer를 사용해 Layout를 검사
- 사용된 뷰 수와 Measure, Layout, Draw 처리 시간을 이용해 성능 저하를 유발하는 뷰를 찾을 수 있다.
2. Layout 재사용
1) 재사용 할 수 있는 공통 뷰를 Layout을 작성
2) <include/> 태그를 이용하여 뷰에 사용
3) 재사용 할 수 있는 뷰의 Layout 작성시 <merge/> 태그를 활용하면 불필요한 View
Group 사용을 줄여준다.
3. 필요한 경우에 뷰를 로딩
- ViewStub을 이용하면 크기도 없고 보여지지 않는 뷰를 사용자가 원하는 시점에 setVisiblity()나 inflate() 메소드의 호출로 원하는 뷰를 생성하여 표시할 수 있다.
4. ListView의 스크롤 부드럽게 만들기
- 스크롤을 부드럽게 하려면 Main Thread(UI Thread)를 idle 상태로 유지 해야함.
1) Background Thread를 사용해라
- AsyncTask 등을 사용하여 디스크 I/O, 네트워크 I/O, DB I/O 등의 작업 수행은 Background Thread를 사용해야 한다.
2) getView에서 findViewById() 를 사용하여 View를 얻을때 ViewHolder를 사용하여 한번 find된 View를 다시 find하지 않게 하라.
댓글
댓글 쓰기