티스토리 뷰
안드로이드 4대 컴포넌트(구성요소)
- Activity, Service, Boradcast Receiver , Content Provider
- 4가지는 기본 컴포넌트
- 안드로이드 어플리케이션 내에서 독자적으로 작업을 실행할 있는 일종의 진입점
(1) Activity
- 사용자 인터페이스 화면을 구성하는 컴포넌트
- Activity내에는 Fragment 추가하여 화면 분할 가능
(2) Service
- 백그라운드에서 실행되는 컴포넌트, 시각적인 사용자 인터페이스를 가지지 않음
- 한번 시작된 서비스는 Applcation이 종료되도 Background에서 돌아감
- 모든 Service는 Service 클래스를 상속받아서 사용
- 네트워크를 통해 데이터를 가져올 수 있음
* Service 이용하여 Components 구현
* Service 구현
(3) Boradcast Receiver
- 배터리부족, 언어 설정 변경 등의 특정 브로드캐스트를 수신하거나 반응하는 컴포넌트,즉 다양한 이벤트와 정보를 받아 반응하는 컴포넌트
- 시각적인 사용자 인터페이스를 가지지 않음
- Device 발생하는 일 중에서 Application이 알아야 하는 상황이 발생하면 알려줌
- 공지 메시지 -> 배터리부족, 언어변경 / 파일 다운로드 완료 등
- Boradcast Receiver는 알림을 통해 사용자의 주의를 끌 수 있음
- Boradcast Receiver 클래스 확장하여 구현 가능
(4) Content Provider
- 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 컴포넌트
- Content Provider 클래스 확장하여 구현가능하고, 다른 Application의 데이터도 변경 가능
- 데이터베이스의 데이터를 전달할 때 많이 사용, query(), insert(), update(), delete() getType() 등의 메소드를 구현
컴포넌트 활성화시점
- Activity - Intent에 의해 활성화
- Service - Intent에 의해 활성화
- Boradcast Receiver - Intent에 의해 활성화
- Content Provider - ContentResolver에 의해 활성화
컴포넌트 비활성화시점
- Activity - finish()에 의해 비활성화, 다른 액티비티 비활성화 경우 finishActivity()
- Service -stopSelf(), Context.stopService()로 비활성화
- Boradcast Receiver - 명시적으로 비활성화 시킬필요 없음 * Broadcast 메시지에 대한 응답시 활성화
- Content Provider - 명시적으로 비활성화 시킬필요 없음 * ContentResolver 요청 응답시에만 활성화
안드로이드 주요 용어(컴포넌트, Component)
- 일반적으로 처음 시작되는 Main Activity는 Application을 실행할 때 시작
- 다른 Activity는? Intent를 통해 시작할 수 있음
(1) Activity - 사용자 인터페이스 화면을 구성하는 컴포넌트
(2) Service - 백그라운드에서 실행되는 컴포넌트, 시각적인 사용자 인터페이스를 가지지 않음
(3) Intent - 컴포넌트에 액션, 데이터 등을 전달하는 메시지 컴포넌트
(4) Intent Filter - 수신할 수 있는 Intent를 정의하여 컴포넌트를 정의하는 역할을 하는 컴포넌트
(5) Boradcast Receiver - 배터리부족, 언어 설정 변경 등의 특정 브로드캐스트를 수신하거나 반응하는 컴포넌트, 시각적인 사용자 인터페이스를 가지지 않음
(6) Content Provider - 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 컴포넌트
(7) Notification - 사용자에게 특정 이벤트를 알리는 컴포넌트
(8) Fragment - 액티비티 내에서 독자적으로 동작할 수 있는 UI 컴포넌트
안드로이드 애플리케이션 구조
- 안드로이드 Application은 MVC 모델로 구성
(1) View - 화면 구성을 담당하는 영역
(2) Control - View와 Model을 서로 연결하고 제어하는 영역
(3) Model - Application의 데이터를 저장하는 역할 담당, 안드로이드에 내장된 데이터베이스, 파일 , 애플리케이션 간의 데이터 공유등을 위해 사용됨
- 하지만 다른 구조도 많이 사용됨
- MVVM 패턴(View - View Model - Model )을 사용하여 각각 역할 분리하여 가독성 높임, 데이터 실시간 관찰 , 역할별로 정리하기가 좋음
- Clean 아키텍쳐 ...
---> 참고) rosypark.tistory.com/345
<출처>
1. kairo96.gitbooks.io/android/content/ch2.1.html
2. developer.android.com/guide/components/fundamentals?hl=ko
'Programming > Android' 카테고리의 다른 글
[Android] Main Thread(UI Thread) & runOnUIThread() (0) | 2020.11.29 |
---|---|
[Android] Intent (0) | 2020.11.28 |
[Android] Activity (0) | 2020.11.28 |
[Android] Layout (0) | 2020.11.28 |
[Android] Fragment (0) | 2020.11.28 |