728x90
반응형
- 쓰레드
- 안드로이드 기반인 리눅스가 본질적으로 멀티스레드 운영체제
- 자바가 가상머신 차원에서 멀티스레드를 잘 지원한다.
- 프로세스는 운영체제로부터 자원을 할당받는 작업의 단위이고 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위입니다 (출저)
- 멀티 프로세스로 실행되는 작업을 멀티 스레드로 실행할 경우, 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 관리할 수 있습니다. 뿐만 아니라 프로세스 간의 통신보다 스레드 간의 통신의 비용이 적으므로 작업들 간의 통신의 부담이 줄어들게 됩니다. (위와 같은 출저)
- 안드로이드에서는 UI 업데이트는 메인쓰레드에서만 할 수 있고 , 다른쓰레드 에서는 UI 업데이트 외의 필요한 작업을 할 수 있습니다. 그리고 다른쓰레드에서 UI 업데이트를 해야 할 경우 , 핸들러를 이용해서 메인쓰레드와 통신하여 UI 업데이트를 해주면 된다는 사실 입니다. (출저)
- 다른 자료 : http://ralf79.tistory.com/34
- AsyncTask
- 메인Thread 외에는 일반Thread들이 안드로이드 UI 화면을 처리할 수 없습니다. 그렇기 때문에 메인Thread와 일반Thread 를 잘 핸들링 해서 사용해야 하는데, 여간 번거로운 일이 아닙니다.
- AsyncTask는 UI 처리 및 Background 작업 등 을 하나의 클래스에서 작업 할 수 있게 지원해 줍니다. AsyncTask 객체하나로 편하게 UI를 수정 할 수 있고, Background 작업을 진행 할 수 있습니다. 각각의 주기마다 CallBack 메서드를 사용해서 (출저)
- 1. execute( ) 명령어를 통해 AsyncTask을 실행합니다.
- 2. AsyncTask로 백그라운드 작업을 실행하기 전에 onPreExcuted( )실행됩니다. 이 부분에는 이미지 로딩 작업이라면 로딩 중 이미지를 띄워 놓기 등, 스레드 작업 이전에 수행할 동작을 구현합니다.
- 3. 새로 만든 스레드에서 백그라운드 작업을 수행합니다. execute( ) 메소드를 호출할 때 사용된 파라미터를 전달 받습니다.
- 4. doInBackground( ) 에서 중간 중간 진행 상태를 UI에 업데이트 하도록 하려면 publishProgress( ) 메소드를 호출 합니다.
- 5. onProgressUpdate( ) 메소드는 publishProgress( )가 호출 될 때 마다 자동으로 호출됩니다.
- 6. doInBackground( ) 메소드에서 작업이 끝나면 onPostExcuted( ) 로 결과 파라미터를 리턴하면서 그 리턴값을 통해 스레드 작업이 끝났을 때의 동작을 구현합니다. (위 6개 출저)
- 객체지향
- MVP 패턴
- MVC와 다르게 MVP는 Model과 View 간의 결합도를 낮추는데 초점이 맞추어져 있습니다. (출저)
- View 는 실제 view 에 대한 직접적인 접근을 담당한다. (아래 모두 출저_잔디 블로그)
- view 에서 발생하는 이벤트는 직접 핸들링하나 Presenter 에 위임하도록 한다.
- Presenter 는 실질적인 기능을 제어하는 곳으로써 ViewController 로써 이해하면 쉽다.
- Model 은 비지니스 로직을 실질적으로 수행한다.
- Presenter : View 는 1:1 로 매칭하며 View Presenter 가 주요 기능을 관장하되 실제 view 에서 발생하는 이벤트는 Presenter (이벤트 : View -> Presenter) 로 전달하여 처리하도록 하고 다시 처리된 결과는 Presenter 가 View 에 전달하도록 하여 처리한다. (처리 결과 표현 : Presenter -> View)
- 기타자료 : http://steveyoon.tistory.com/188
MVP 패턴 소개 from beom kyun choi
- 액티비티
- 사용자 인터페이스 화면을 관리하는 컴포넌트
- onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestory() (출저)
- 화면에 표시되는 UI 구성을 위해 가장 기본이 되는 요소
- 안드로이드 앱은 화면에 UI를 표시하기 위해 최소 하나의 Activity를 가져야 하며, 앱 실행 시 지정된 Activity를 실행하여 사용자에게 UI를 표시 (출저)
- 시스템은 새로운 액티비티를 시작하면 백스택에 담고 나서 사용자에게 보여줍니다. 백스택은 "후입선출"의 스택 메커니즘을 따르며, 사용자가 뒤로버튼을 누를 경우, 스택의 최상위(top)에 있는 현재 액티비티를 제거(pop and destroy)하고 이전의 액티비티를 시작 (출저)
- 프래그먼트
- 프래그먼트는 자체 수명 주기를 가지고, 자체 입력 이벤트를 받으며, 액티비티 실행 중에 추가 및 제거가 가능한 액티비티의 모듈식 섹션이라고 생각하면 됩니다(다른 액티비티에 재사용할 수 있는 "하위 액티비티"와 같은 개념). (출저)
- 디바이스의 화면 크기에 따라서 2개 이상의 Activity를 표현할 수 있는 방법이 필요 (출저 - 이 포스팅의 영상도 추천)
- 디테일한 커니님의 설명
- onAttach() --> onCreate() --> onCreateView() --> onActivityCreated() --> onStart() ~ onStop() --> onDestroyView() --> onDestory() --> onDetach() (출저)
728x90
반응형
'Android, iOS' 카테고리의 다른 글
저장소 옵션이란게 있다고 합니다 (0) | 2017.01.18 |
---|---|
[Project Glue] Rest API가 신경쓰여요 (0) | 2017.01.18 |
RecyclerView에 충분히 익숙해지자 (0) | 2017.01.03 |
알아두면 좋은 것 : 액션바 만들기, Glide custom cache (0) | 2016.12.21 |
맨날 Start만 하는 Activity. 그래놓고 제대로 시작한 적은 있냐 (0) | 2016.12.21 |
Comment