Android

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

tae_aegwan 2021. 9. 17. 11:44

안드로이드 4대 컨포넌트

안드로이드의 주요 4대 컴포넌트는 Activity (액티비티), Service (서비스), Broadcast Receiver (브로드캐스트 수신기), Contents Provider (콘텐츠 제공자)를 말합니다. 4가지 중 가장 많이 사용하는 것은 Activity (액티비티)이지만 나머지 컴포넌트들도 매우 중요하므로 어떤 기능인지를 알아두어야 합니다.

 

Activity (액티비티)

 

액티비티는 UI 화면을 담당하는 컴포넌트입니다. 간단하게는 화면에 보여지는 부분의 기능이라고 할 수 있죠.

안드로이드 앱은 화면에 UI를 표시하기 위해 최소 하나의 Activity를 가져야 하며, 앱 실행 시 지정된 Activity를 실행하여 사용자에게 UI를 표시하게 됩니다.

 

  • 사용자와 상호작용하기 위한 진입점
  • 사용자 인터페이스를 포함한 화면 하나를 나타냅니다.
  • 이메일 앱이라면 새 이메일 목록을 표시하는 액티비티 하나, 이메일을 작성하는 액티비티 하나, 이메일을 읽는 데 쓰는 액티비티 하나 등이 존재합니다.
  • 이메일 앱에서 허용할 경우 다른 앱에서 이와 같은 액티비티 중 하나를 시작할 수 있습니다.

 

Service (서비스)

 

서비스는 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소를 의미합니다.

간단하게는 인터넷을 보면서 음악을 들을 수 있는 것을 말하죠.

 

  • 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점
  • 사용자 인터페이스 (UI)는 제공하지 않습니다.
  • 사용자가 다른 앱에 있는 동안에 백그라운드에서 음악을 재생하거나, 사용자 액티비티 간의 상호작용을 차단하지 않고 네트워크를 통해 데이터를 가져올 수 있습니다.

 

BroadCast Receiver (방송 수신자)

 

방송 수신자는 시스템 범위의 브로드캐스트 알림에 응답하는 구성 요소를 의미합니다. 간단하게는 배터리 부족 시 알림, SNS 알림 등 하나의 정보를 방송하는 것을 말하죠.

 

  • 시스템이 정기적인 사용자 플로우 밖에서 이벤트를 전달하도록 지원하는 컴포넌트
  • 대다수의 브로드캐스트는 시스템에서 발생 (화면 꺼짐, 배터리 부족, 사진 캡쳐 알림 등)
  • 일반 앱도 브로드캐스트를 사용하여 사용자 인터페이스를 표시하지 않지만, 상태 표시줄 알림을 생성합니다.

 

Contents Provider (콘텐츠 제공자)

 

콘텐츠 제공자는 애플리케이션 간에 데이터 공유를 위해 표준화된 인터페이스로서 데이터를 관리하고 다른 애플리케이션의 데이터를 제공하는 것을 의미합니다.

 

  • 콘텐츠 제공자는 파일 시스템, SQLite 데이터베이스, 웹상이나 앱이 접근할 수 있는 다른 모든 영구 저장소에 저장가능한 앱 데이터의 공유형 집합을 관리합니다.
  • 다른 앱은 컨텐츠 제공자를 통해 해당 데이터를 쿼리하거나, 콘텐츠 제공자가 허용할 경우에는 수정도 가능합니다.
  • 안드로이드 시스템은 사용자의 연락처 정보를 관리하는 콘텐츠 제공자를 제공하여, 적절한 권한을 가진 앱이라면 콘텐츠 제공자를 쿼리하여 특정한 인물에 대한 정보를 읽고 쓸 수 있습니다.