본문 바로가기
Android

[Android] 안드로이드의 4대 구성요소(4대 컴포넌트)

by JongSeok 2023. 1. 10.

어디선가 들어봐서 어렴풋이 알고 있던 안드로이드의 4대 구성요소에 대해 정리해보려 합니다.

 

 

안드로이드의 4대 구성요소는 다음과 같습니다.

 

  • Activity (액티비티)
  • Service (서비스)
  • Broadcast Receiver (방송 수신자)
  • Contents Provider (콘텐츠 제공자)

추가적으로 안드로이드 3.0부터 Fragment(프래그먼트)가 추가되었습니다. 하지만 아직까지는 4대 구성요소로 보기 어렵지만 핵심 구성요소로 봐도 무방할 만큼 활용빈도가 높습니다. 알아두도록 합시다!

 

각각의 구성요소는 독립적인 형태로 존재하며 Intent(인텐트)를 통해 상호작용합니다.

이때, Intent는 컴포넌트에 액션, 데이터 등 다양한 정보를 전달하기 위한 객체입니다.

 

안드로이드 스튜디오에서 프로젝트 생성 시 앱의 구성요소에 대한 정보는 AndroidManifest.xml에서 관리됩니다.


1. Activity (액티비티)

Activity는 사용자에게 보이는 UI 화면을 관리하는 컴포넌트입니다. 화면을 구성하는 View(버튼, 이미지, 이벤트 등)와 사용자의 모든 상호작용에 액티비티가 관여합니다.

또한, 안드로이드 어플리케이션은 반드시 하나 이상의 Activity로 구성되어야 합니다. 액티비티가 하나도 없으면 화면이 사용자와 상호작용할 방법이 없기 때문입니다. 안드로이드 스튜디오에서 프로젝트 생성 시 MainActivity가 자동생성되는 이유입니다.

그리고 각 액티비티는 하나의 화면만을 띄울 수 있습니다. 액티비티 내에서 프래그먼트로 화면을 분할하여 보여주는 것은 가능합니다.

2. Service (서비스)

Service는 백그라운드에서 실행되는 작업을 수행합니다. 따라서 서비스는 앱을 종료하더라도 계속해서 백그라운드에서 작동합니다.

액티비티가 화면의 눈에 보이는 작업들을 처리한다면 서비스는 화면 없이 백그라운드에서 눈에 보이지 않는 작업을 처리합니다. 즉, 사용자와 상호작용하지 않으면서 작업을 수행하고 싶을 때 사용하는 컴포넌트입니다.

 

예를 들어, 뮤직 플레이어나 만보기 같은 앱의 경우가 있습니다.

3. Broadcast Receiver (방송 수신자)

Broadcast Receiver는 디바이스에서 발생하는 여러 이벤트와 정보를 어플리케이션에서 수신하는 구성요소입니다.

디바이스 상태에 따른 어떤 메시지를 수신만 하기 때문에 대부분 UI를 가지지 않습니다.

 

예들 들면 이어폰이 연결/해제 된다던지, 화면이 ON/OFF 되거나 배터리의 상태변화 등이 있습니다.

4. Contents Provider (콘텐츠 제공자)

데이터를 관리하고, 어플리케이션간의 데이터 공유를 위해 인터페이스를 제공하는 구성요소입니다.

쉽게 말해, 콘텐츠 제공자를 통해 갤러리나 주소록 등 디바이스에 설치된 다른 앱에 접근이 가능합니다.

 

예를 들어 카카오톡을 처음 실행하면 여러 접근 권한을 허용할지에 관한 알림을 볼 수 있습니다. 사용자가 연락처 접근 권한을 허용하면 카카오톡은 ContentProvider를 통해 우리의 연락처에 대한 데이터를 공유받아 친구 목록을 업데이트합니다.

사용자가 접근을 허용하는 정도에 따라 어플리케이션이 사용할 수 있는 데이터도 제한됩니다.

 

 

728x90
반응형