안드로이드 4대 컴포넌트
컴포넌트란?
컴포넌트 = 앱의 구성 단위이며, 컴포넌트 여러 개를 조합하여 하나의 앱을 만듦
- 각 컴포넌트들은 하나의 독립적인 형태로 존재함
- 각 컴포넌트들은 고유의 기능을 수행
- 각 컴포넌트들은 인텐트를 통해 서로 상호작용함.
Activity
UI 화면 담당 컴포넌트(전면) - 사용자와 상호작용
- activity 클래스 반드시 상속
- 라이프사이클 메서드 재정의해서 구현
특징
- 안드로이드 어플리케이션은 반드시 하나 이상의 액티비티를 가져야함
- 두 개의 activity를 동시에 display할 수 없음
- 다른 어플의 액티비티도 부를 수 있음
- 액티비티 내에서 fragment 추가해서 분할 가능
Service
백그라운드 실행되는 프로세스(후면)
- 사용자와 직접적으로 상호작용하지 않음
- 새로 만든 후에는 항상 manifest에 등록해줘야함
- activity 내에서 startService를 이용해서 실제 서비스 스레드(메인 스레드)를 수행해서 동작
특징
- 화면이 없다
- 한번 시작된 서비스는 앱이 종료되도 계속 백그라운드로 돌아간다
- 모든 서비스는 서비스 클래스를 상속받아서 사용한다
- 서비스는 네트워크를 통해 데이터를 가져올 수 있음
Content Provider
데이터를 관리&다른 어플에게 데이터 제공
- 영구 저장 위치에 저장 가능한 앱 데이터의 공유형 집합을 관리
- 주로 데이터베이스에서 데이터를 전달할 때 사용 (스마트폰 내부 db)
- 용량이 큰 데이터 공유
- 생명주기 있음
특징
- 파일 입출력, SQL lite DB,웹 등을 통해 데이터 관리
- 다른 어플의 데이터도 변경 가능
Broadcast Reciever
다양한 이벤트와 정보를 받아서 반응(핸들링)
- 메세지를 전파하는 방법을 의미
- 방송 수신자 구성요소를 이용해서 메세지를 받을 수 있음
- 사용자 인터페이스를 표시하진 않지만, 상태 표시줄 알림을 생성하여 이벤트 발생 알림
특징
- 화면이 없음
- 디바이스에서 발생하는 일중에 앱이 알아야 하는 일을 알려줌
- 수신기를 통해 디바이스의 상황 감시
+) Intent
컴포넌트를 제어할 수 있는 메세지 객체
- 비동기식 메세지
- 서로 독립적으로 동작하는 4대 컴포넌트 간의 상호 통신을 위한 장치
- 컴포넌트에 액션이나 데이터를 전달 & 컴포넌트 활성화