안드로이드 앱 개발의 핵심은 컴포넌트이다.
종종 "액티비티 컴포넌트", "서비스 컴포넌트" 등 컴포넌트라는 용어가 자주 등장한다.
그렇다면 컴포넌트란 무엇일까?
컴포넌트란?
컴포넌트는 안드로이드뿐만 아니라 여러 애플리캐이션을 개발할 때 사용되는 개념이다.
쉽게 말하면, 애플리케이션의 구성 요소라고 할 수 있다.
이처럼 하나의 애플리케이션은 여러 개의 컴포넌트로 구성된다.
안드로이드에서는 클래스로 컴포넌트를 개발한다. 즉, 하나의 클래스 = 하나의 컴포넌트가 된다,
그렇다고 모든 클래스가 컴포넌트인 것 또한 아니다.
앱은 컴포넌트 클래스와 일반 클래스로 구분되는데, 이는 생명주기를 누가 관리하느냐에 따라 구분된다.
- 클래스의 객체 생성부터 소멸까지의 생명주기 관리를 개발자 코드에서 한다 -> 일반 클래스
(개발자가 임의의 목적으로 만든 클래스) - 안드로이스 시스템에서 생명주기 관리를 한다 -> 컴포넌트 클래스
컴포넌트 유형(앱 구성 요소)
각 컴포넌트는 시스템이나 사용자가 앱에 들어올 수 있는 진입점이기도 하다.
컴포넌트에는 4가지 유형이 있다.
▶ Activity(액티비티)
액티비티는 사용자와 상호작용하기 위한 진입점이자 컴포넌트이다.
이는 사용자 인터페이스를 포함한 화면 하나를 나타낸다.
예를 들어, 전화를 걸 때, 우선 번호를 입력하는 키패드 화면 또는 연락처가 저장되어 있는 화면 등등이 있다.
다음 단계로 통화 버튼을 누르면 신호음과 함께 통화 화면으로 넘어가지게 된다.
이렇게 다양한 액티비티들이 함께 작동하여 해당 통화 앱에서 짜임새 있는 사용자 환경을 구성하지만, 이들은 각각 독립되어 있다.
▶ Service(서비스)
서비스는 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점이자 컴포넌트이다.
백그라운드에서 실행되는 구성 요소로, 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행한다.
백그라운드에서 동작하기 때문에 화면 출력 기능이 없고, 따라서 UI 기능이 필요하지 않다.
즉, 액티비티와 레이아웃이 없어도 된다.
▶ Broadcast Receiver(브로드캐스트 리시버)
시스템이 정기적인 사용자 플로우 밖에서 이벤트를 앱에 전달하도록 지원하는 컴포넌트로, 앱이 시스템 전체의 브로드캐스트 알림에 응답할 수 있게 한다. Broadcast Receiver도 앱으로 들어갈 수 있는 또 다른 명확한 진입점이기 때문에, 현재 실행되지 않은 앱에도 시스템이 브로드캐스트를 전달할 수 있다. 이 또한 특정 브로드 캐스트를 수신만 하므로 UI 기능이 필요하지 않다.
예를 들어, 부팅 완료, 배터리 방전, 사진 캡처 등을 알리는 브로드캐스트가 대표적이다.
▶ Content Provider(콘텐츠 제공자)
앱의 데이터를 관리하고, 다른 애플리케이션과 공유하는 구성 요소이다.
우리의 핸드폰을 보면, 많은 앱이 설치되어 있다. 하나의 앱이 자신의 데이터를 다른 앱에 공유하려면 Content Provider를 만들어야 하며, 데이터를 받는 앱에서는 그 Content Provider를 이용해 데이터에 접근하다.
예를 들어, 어떠한 앱에서 프로필을 변경할 때, 갤러리 앱의 사진을 이용할 수 있다. 이때 Content Provider를 이용해 데이터를 주고받는다.
'Android' 카테고리의 다른 글
[Android] Activity LifeCycle(액티비티 생명주기) (0) | 2022.08.14 |
---|---|
[Android] Toast Message(토스트 메세지) (0) | 2022.08.14 |
[Android] Intent란?, Intent를 이용한 화면 전환하기 (0) | 2022.08.13 |
[Android] Android Naming Convention(안드로이드 네이밍 컨벤션) (0) | 2022.08.09 |
[Android] View(뷰), Widget(위젯), Layout(레이아웃) (0) | 2022.08.07 |
댓글