일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- android arhitecture componets
- 뷰모델
- android ViewModel
- ViewModel
- 안드로이드 그래들
- Android
- ui 스레드
- 안드로이드 메인 스레드
- 안드로이드 스튜디오
- 안드로이드
- 안드로이드 아키텍처 컴포넌트
- google io 2017
- LiveData
- 안드로이드 빌드
- 안드로이드 뷰모델
- 아키텍쳐 컴포넌트
- 라이브데이터
- 아키텍처 컴포넌트
- 메인 스레드
- 작업 스레드
- android studio
- 안드로이드 네트워크 통신
- Architecture Components
- 안드로이드 스레드
- 안드로이드 Gradle
- 안드로이드 UI 스레드
- worker thread
- UI Thread
- Today
- Total
목록Android (3)
현치비
Main Thread(메인 스레드)와 Worker Thread(작업 스레드) 오늘은 안드로이드 메인 스레드에 대해서 알아보려고 한다. 앱은 일반적으로 프로세스 하나 위에 여러 멀티 스레드가 돌고 있는 형태이다. (물론, 멀티 프로세스도 가능하긴 하다.) https://brunch.co.kr/@kd4/3 (프로세스와 스레드) 멀티 스레드를 사용하면 성능은 향상된다. 하지만, UI를 멀티 스레드로 변경해버린다면,,? 원하는 UI로 그려지지 않을 확률도 높고, 여러 이상현상이 발생할 것이다. 그래서 안드로이드는 UI를 그리는 스레드는 오직 Main(UI) 스레드에서만 가능하도록 설계되었다. 그래서 메인스레드 혹은 UI 스레드라고 부른다. (같은 말임) 메인 스레드가 아닌 작업(Worker) 스레드(or 백그라..
오늘은 LiveData를 알아보자. LiveData? 데이터를 가지고 있고, 데이터의 변경을 감지할 수 있는 클래스 끝이다. 필자는 Api 응답이나, 프래그먼트 간의 데이터 교환, 데이터 통일성 유지를 위해 많이 사용한다. 예를 들어, 카페 앱을 만든다고 생각해보자. 카페 게시글 List 화면(A) 프래그먼트, 카페 게시글 상세정보화면(B) 프레그먼트 두 프래그먼트 화면에서 각 카페 글에 대한 좋아요 갯수 데이터를 가지고 있다고 가정하자. A -> B 프레그먼트로 전환될 때 우리는 newInstance(int likeCount) 이런식으로 데이터를 넘긴다. B 프레그먼트에서 데이터를 변경하고, likeCount++; B 프레그먼트에서 BackKey를 눌러 A로 다시 돌아오는 경우에 A에게 변경된 데이터를..
이번 시간은 ViewModel을 알아본다. 먼저 정의를 알아보자. ViewModel Activity는 가로 회전을 하게되면, 새로운 Activity의 인스턴스가 생성된다. 즉, 기존 Activity는 onPause -> onStop -> onDestory타서 죽고, 새로운 Activity가 새로 생성되어 onCreate -> onStart -> onResume를 탄다. 위가 왜 문제가 된다는 것일까? 위 첫 번째 Activity(보라+파란 색 화살표)에서 fetchUser() 메서드로 유저 정보를 가져온다. 가로 모드로 전환. 새로운 Activity가 다시 fetchUser() 메서드로 유저 정보를 가져온다. 중복 데이터 통신 == 데이터 낭비 + 배터리 낭비 ViewModel을 쓰면 다음과 같이 해결..