안드로이드/안드로이드 이론

[안드로이드] 4대 컴포넌트

PureStack 2021. 12. 18. 23:05

컴포넌트 (Component) ?

컴포넌트는 구성 요소라는 뜻을 지니고 있다. 다시 말해서, 안드로이드 4대 컴포넌트는 안드로이드 앱을 구성하는데 필요한 4개의 요소를 의미한다. 안드로이드 4대 컴포넌트는 액티비티(Activity), 서비스(Service), 방송 수신자(BroadCast Receiver), 콘텐츠 제공자(Content Provider) 가 있다. 각 컴포넌트는 독립적인 형태로 존재하며, 고유한 기능을 수행하고 인텐트(Intent) 를 통해 상호작용한다.

1. 액티비티 (Activity)

  • 액티비티는 사용자가 Application과 상호작용하며 실제로 사용자에게 보이는 화면을 의미한다.
  • Application에 화면이 하나도 없으면, 사용자와 상호작용 할 수 없으므로 적어도 하나의 액티비티는 반드시 필요하다.
  • 다른 Application의 액티비티 역시 인텐트를 통해 불러올 수 있다.
  • 하나 이상의 View 또는 ViewGroup을 가지고 있어야 한다. 여기서 View는 화면에서 눈에 보이는 것들, 예를 들어 텍스트, 버튼, 이미지 등등을 의미하며, ViewGroup은 레이아웃을 의미한다고 볼 수 있다.

2. 서비스 (Service)

  • 서비스는 액티비티와 반대로 직접적으로 상호작용하지 않는 요소이다.
  • Background에서 어떠한 작업을 처리하기 위해 사용된다.
  • Application이 종료되어도 Background에서 동작하는 컴포넌트이다.
  • 음악 앱 같은 경우에, Background에서 계속 음악을 재생시키기 때문에 이 기능은 서비스에 해당된다. 그래서 실제로 음악 앱을 꺼놔도(음악 앱을 종료해도) 음악은 별 이상없이 계속 재생되는 것을 확인할 수 있다.
  • 타이머 앱 같은 경우에도 마찬가지로, 실제로 타이머를 실행시킨 후 앱을 꺼도 타이머는 계속 작동되므로 이 역시 서비스 기능이다.

3. 방송 수신자(BroadCast Receiver)

  • 안드로이드 OS로부터 발생하는 이벤트 정보를 받고 대응하는 컴포넌트이다.
  • 대부분 UI를 가지지 않으며, 수신기를 통해 디바이스 상황을 감시하다가 이벤트가 발생하면 해당 이벤트에 맞게 정의한 작업들을 수행하는 역할을 한다. 다시 말해, 디바이스에서 발생하는 중요한 이벤트를 Application에 알려준다.
  • 대표적인 예로 배터리 부족, 문자 수신, 전화 수신과 같은 정보를 받아서 이를 처리할 때 동작한다.

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

  • 콘텐츠 제공자는 데이터를 관리하고 다른 Application의 데이터를 제공하는데 사용되는 컴포넌트이다.
  • 데이터를 저장하고, 불러와서 사용할 수 있는 시스템들을 의미한다. 일례로 DB, 파일 시스템 등이 있다.
  • 파일 시스템이나 SQLiteDB, 기타 저장소 위치에서 앱이 접근 가능한 저장소의 데이터를 읽거나 쓸 수 있다.
  • 용량이 큰 데이터를 공유하는데 적합하다.
  • 대표적인 사례로 인스타그램 앱에서 갤러리 앱에 접근하여 사진 파일을 가져오거나 지도 앱에서 자신의 현재 위치를 가져오는 등이 대표적 사례라고 볼 수 있다.
  • 이러한 콘텐츠 제공자를 이용하기 위해서는 권한을 획득해야 한다. 이러한 정보들은 민감한 정보들이기 때문에 보통 맨 처음에 앱을 설치하면 바로 권한 요청이 뜨는데, 보안적인 이슈를 고려해서이다.

 

참고자료

 

 

https://angangmoddi.tistory.com/240

 

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

OKKY를 눈팅하다가 앱 관련 회사 면접 시 안드로이드 4대 컴포넌트에 대한 질문이 나왔다는 글을 보고 해당 내용에 대해서 공부할 겸 글로 써보도록 하려고 한다. 안드로이드는 4개의 컴포넌트(구

angangmoddi.tistory.com