[안드로이드] 앱의 구성 요소

akcineg·2023년 10월 12일
0

안드로이드 공부

목록 보기
2/7

안드로이드 앱의 구성요소

안드로이드 앱은 4가지의 구성요소로 이루어져 있다.

  • 액티비티 (Activity)
  • 서비스 (Service)
  • 브로드캐스트 리시버 (Broadcast Receiver)
  • 콘텐츠 프로바이더 (Content Provider)

각 구성요소는 안드로이드 앱을 실행하기 위해서 필수적이다. 또한 각 구성요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점 역할을 한다. 즉, 네 가지의 구성요소에 의해서 앱이 실행하고 동작할 수 있다. 예를 들어서, A라는 앱의 액티비티는 B라는 앱의 액티비티를 활성화하여서 결국 B앱을 실행키도록 한다. 흔히 알고 있는 액티비티 외에도 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더가 각 구성요소로 기능하는 데 각각 어떤 기능을 알아보자.

액티비티 (Activity)

액티비티는 UI를 포함한 하나의 화면을 통해서 사용자와 상호작용하기 위한 진입점이다. 액티비티는 앞선 예처럼 한 앱에서 다른 앱을 실행시킬 수 있고, 앱 내에 있는 액티비티를 활성화시킬 수도 있다.

서비스 (Service)

서비스는 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점이다. 서비스는 백그라운드에서 실행되는 구성요소로서, 오랫동안 실행되는 작업을 수행하거나, 원격 프로세스를 위한 작업을 수행한다. 백그라운드에서 작업하기 때문에 서비스는 UI를 제공하지는 않는다. 서비스는 사용자가 앱의 UI를 통해 상호작용을 하고 있는 도중에도 자신의 작업을 수행한다.

브로드캐스트 리시버 (Broadcast Receiver)

브로드캐스트 리시버는 시스템이 이벤트를 전달하도록 지원하는 구성요소이다. 앱은 시스템의 브로드캐스트 알림에 응답하여 실행할 수 있다. 그렇기 때문에 브로드캐스트 리시버 역시 앱의 진입점 역할을 한다고 할 수 있다. 예를 들어, 알람 앱에서 알람을 설정하고 앱을 종료하면, 더 이상 알람 앱이 기능하지 않는 것이 아니다. 알람을 설정할 때에 앱의 브로드캐스트 리시버에게 전달하여서 나중에 알람 시간이 되었을 때 전달되는 시스템 브로드캐스트를 수신(Receive)하여서 앱을 실행시킬 수 있다. 리시버 자체가 UI를 제공하지는 않지만, 필요에 따라 UI를 통해서 이벤트 알림을 제공할 수 있다.

콘텐츠 프로바이더 (Content Provider)

콘텐츠 프로바이더는 파일 시스템, SQLite Database, 웹 상이나 앱이 액세스할 수 있는 다른 모든 영구 저장 위치에 저장 가능한 앱 데이터의 공유형 집합을 관리하는 역할을 한다. 한 앱이 콘텐츠 제공자를 통해서 다른 앱의 데이터를 쿼리하여 다른 앱의 데이터를 읽어들인다. 그렇기 때문에 콘텐츠 프로바이더 역시 앱의 진입점 역할을 한다고 볼 수 있다.

구성요소의 활성화

안드로이드 앱의 각 구성요소는 상호작용을 통해서 앱의 동작을 수행한다. 앱이 잘 동작하기 위해서는 구성요소가 적절히 활성화되어야 한다.
액티비티, 서비스, 브로드캐스트 리시버 이 세 구성요소는 Intent라는 객체를 사용해서 활성화시킬 수 있다.
콘텐츠 프로바이더는 Intent 대신 CotentResolver라는 객체를 통해서 활성화시킨다.

profile
내 가치를 증명하자

0개의 댓글