포켓몬에 사천왕이 있다면 안드로이드에는 4대 컴포넌트가 있습니다.
어렸을 때 포켓몬을 좋아하셨던 분들이라면 한번쯤은 들어보셨던 이름이 있죠.
바로 사천왕😲
포켓몬에 사천왕이 있다면 안드로이드에는 4대 컴포넌트가 있습니다.
4대 컴포넌트들은 다음과 같은 특징이 있습니다.
특징을 알았으니 어떤 컴포넌트들이 있는지 알아보면
- Activity(액티비티)
- Service(서비스)
- Broadcast Receiver(방송 수신자)
- Content provider(컨텐츠 제공자)
이 네 가지의 컴포넌트들이 존재합니다.
이제 이 각각의 컴포넌트들이 안드로이드 내부에서 어떤 역할을 수행하는지 알아보겠습니다.
- 먼저 Activity(액티비티)입니다.
액티비티는 사용자가 보는 UI화면 그 자체를 말하는데Activity
클래스를 상속받아 사용합니다.
또한 액티비티는 사용하려면 안드로이드 Manifest에 반드시 선언해야 합니다.
- Service(서비스)는 사용자가 볼 순 없지만 Background에서 열심히 일하는 컴포넌트이며
Service
클래스를 상속받아 사용합니다.- 서비스의 예를 들면 우리가
멜론이나지니등 뮤직 플레이어를 사용할 때 🎶노래를 들으며 카톡을 할 수 있습니다. 이때 뮤직 플레이어는 어디서 동작을 할까요? 🤔
바로 Background입니다. 여기서 뮤직 플레이어는 일종의 서비스라고 볼 수 있겠죠.
- Broadcast Receiver(방송 수신자)는
BroadcastReceiver
클래스를 상속받아 사용하며 시스템이나 앱등의 이벤트를 수신하여 원하는 작업을 처리하도록 도와주는 컴포넌트 입니다.- 방송 수신자를 예로 들면 우리가 스마트폰을 사용할 때 울리는 문자 메세지, 배터리 부족 알람 등등 모두 방송 수신자를 통해 사용자에게 보여주는 것입니다.
- 마지막으로 Content Provider(컨텐츠 제공자)는
ContentProvider
클래스를 상속받아 사용하며 어플리케이션 사이의 데이터를 공유하도록 도와주는 컴포넌트입니다.- 기본적인 연락처 앱에서 연락처 정보를 가져올 수 있도록 도와줍니다.
컴포넌트간의 통신은 Intent를 사용합니다.
이 Intent는 두 가지 사용방법이 있는데
- 명시적 Intent: 보통 하나의 액티비티에서 다른 액티비티로 넘어갈 때 많이 쓰이는 방식
- 암시적 Intent: Action을 통해 전화앱으로 통화나 웹 브라우저 호출등을 할 때 쓰이는 방식