RecyclerView 스크롤링 스무스하게 처리하기
- 페이징(데이타를 일정한 데이터로 나누는 것을 의미)을 구현해 스크롤을 맨밑으로 내리기전에 다음 데이타를 가져와서 갱신한다.
1. 앱의 메인스레드가 많은 일을 하지 않도록 하는 것으로 작업자 스레드에서 네트워크, 데이타베이스를 액세스한다.
2. 뷰홀더 디자인 패턴을 사용한다.(findViewById호출을 줄여준다.)
3. ItemPrefetch로 렌더링 퍼포먼스 향상 -> setInitialPrefetchItemCount(4);
- 메인스레드는 뷰생성및바인딩을 처리하고 렌더스레드는 그걸 표시하게 되는데
렌더스레드가 렌더링할동안 메인스레드는 idel에 걸린다. -> 뷰생성및바인딩을 이전프레임허용 ->
메인스레드와 렌더스레드가 병렬작업이 가능하게 해준다.
4. PrecomputedText Api 사용
- Text Prefetch api로 메인스레드상에서 텍스트 레이아웃 비용을 95%이상 절감해준다. -> precomputedtextcompat은 롤리팝5.0이상만 작동한다.