본문 바로가기
Develop

RxJava 프로그래밍2

by _dreamgirl 2020. 5. 3.
반응형

제 5장, 스케줄러

  • 뉴 스레드 스케줄러 : Schedulers.newThread(), 특수한 상황에서만 사용 권장
  • 계산 스케줄러 : interval() 함수, 스레드 개수가 기본적으로 프로세서 개수와 동일
  • IO 스케줄러 : 네트워크상의 요청을 처리하거나 각종 입출력 작업을 실행하기 위한 스케줄러, 기본적으로 생성되는 스레드 개수가 다름. Schedulers.io()
  • 트램펄린 스케줄러 : 새로운 스레드를 생성하지 않고 현재 스레드에 무한한 크기의 대기행렬을 생성함,  큐에 작업을 놓은 후 1개씩 꺼내어 동작하므로 첫 번째 구독과 두 번째 구독의 실행 순서가 바뀌는 경우는 발생 하지 않는다. Schedulers.trampoline()
  • 싱글 스레드 스케줄러 : 단일 스레드만 사용, 리액티브 프로그래밍에서는 싱글스레드 스케줄러를 활용할 확률이 낮음
  • Executor 변환 스케줄러
  • subscribeOn 함수는 한번 호출했을 떄 결정한 스레드를 고정하며 이후에는 다시 호출해도 스레드가 바뀌지 않는다.
  • observeOn 함수는 여러 번 호출할 수 있으며 호출되면 그 다음부터 동작하는 스레드를 바꿀 수 있다.

 

제 6장, 안드로이드 RxJava 활용

  • RxAndroid는 RxJava에 최소한의 클래스를 추가하여 안드로이드 앱에서 리액티브 구성요소를 쉽고 간편하게 사용하게 만든 라이브러리다.
  • 안드로이드에서 사용할 수 있는 리액티브 API 및 라이브러리 목록 참고!
  • Ex) RxLifecycle, RxBinding, SqlBrite, Android-ReactoveLocation, RxLocation, rx-pererences, RxFit, RxWear, RxPermissions, RxNotification, RxClipboard, RxBroadcast, RxAndroidBle, RxImagePicker, ReactiveNetwork,ReactiveBeacons, RxDataBinding
  • RxAndroid에서 제공하는 스케줄러 참고!
  • Ex) AndroidSchedulers.mainTread(), HandlerScheduler.from(handler)
  • RxLifecycle 라이브러리 : Activity, Fragment 라이프 사이클을 RxJava에서 사용할 있게 만듦

RxAndroid 활용

  • RecyclerView Android 5.0에서 처음 소개된 리스트 뷰의 장,단점을 보완한 고급 위젯
  • 리스트뷰에서는 ViewHolder 클래스를 구현하지만, RecyclerView 클래스는 구현된 ViewHolder 클래스를 사용하여 뷰를 재사용한다.
  • LayoutManager Class : LineartLayoutManager, GridLayoutManager, StaggeredGridLayoutManager
  • UI스레드에서 화면을 업데이트 할 수 있게 Looper와 Handler 클래스를 제공한다.

메모리누수

  • Disposable 인터페이스를 이용하여 명시적으로 자원 해제
  • RxLifecycle 라이브러리를 이용
  • CompositeDisposable 클래스 이용

 

반응형

댓글