안드로이드 4대 컴포넌트

PEPPERMINT100·2020년 12월 30일
0
post-custom-banner

서론

안드로이드에는 어플리케이션을 구성하는 4개의 컴포넌트가 있다. 이론과 실전 사이에 걸쳐져 있는 것 같은 개념으로 꼭 알아야하는 개념이라고 하여 간단히 알아보았다.

4대 컴포넌트 구성

4대 컴포넌트를 설명하는 가장 대중적인 그림이다. 4대 컴포넌트에는 Activity, Service, Broadcast Receiver, Content Provider가 있고 각각의 컴포넌트는 Intent라는 객체를 통해 통신하게 된다. 하나의 액티비티에서 다른 액티비티로 이동할 때 정보를 Intent 객체에 담아 startActivity라는 메소드를 통해 이동을 했었는데, Activity 뿐만 아니라 다른 컴포넌트 역시 Intent라는 객체를 통해 통신을 한다고 한다. 그러면 각 컴포넌트의 특징을 알아보자.

Activity

  • UI 화면을 담당하는 컴포넌트
  • Activity 클래스를 상속받으며 그 안의 메소드를 통해 라이프 사이클을 재정의 하여 어플리케이션을 작동시킨다.
  • 두 개의 액티비티를 동시에 보여줄 수 없다.
  • 다른 어플리케이션의 액티비티도 불러 올 수 있다.
  • 하나의 액티비티 내에서 Fragment를 통해 여러 화면을 보여줄 수 있다.

Service

  • 백그라운드에서 실행되는 컴포넌트
  • 화면이 존재하지 않는다.
  • Manifest에 등록한 후 사용해야 한다.
  • 액티비티 내에서 startService 메소드를 통해 서비스 스레드를 실행 시켜서 사용한다.
  • 한 번 시작된 서비스는 어플리케이션이 종료되어도 계속 해서 돌아간다.
  • 모든 서비스는 서비스 클래스를 상속받아서 사용한다.
  • 네트워크를 통해 데이터를 가져올 수 있다.

Content Provider

  • 데이터를 관리하는 컴포넌트
  • 내부 데이터베이스의 데이터를 전달(sqlite)
  • 화면이 존재하지 않는다.
  • 다른 어플리케이션의 데이터도 변경이 가능

Broadcast Receiver

  • 다양한 이벤트와 정보를 받아서 반응하는 컴포넌트
  • 수신기를 통해 디바이스의 상황을 보고 적절한 조치를 한다.
  • 대부분의 경우에 화면을 가지지 않는다.

결론

간단하게 4대 컴포넌트의 이론적인 부분들을 알아보았다. 구글링을 통해 얻은 정보를 내가 알아보기 쉽게 메모해 놓은 수준이지만 안드로이드 어플리케이션의 전반적인 내용을 간단히 파악할 수 있었다.

일반적으로 액티비티를 통해 어플리케이션의 UI를 보여주고 일반적인 로직을 실행하게 될 것이다. 그리고 서비스를 통해 안드로이드가 네트워크 통신을 하고 어플리케이션이 종료된 이후에도 작업되어야 하는 내용을 작업하게 될 것이다. 백그라운드에서도 실행이 되므로 스레드를 따로 생성하여 작업이 진행될 것이고, 컨텐트 프로바이더를 통해 기기의 내부 데이터를 사용하게 될 것이다. 그리고 브로드캐스트 리시버는 기기의 상황, 즉 배터리가 없을 경우 wifi의 연결 유무에 따른 처리를 할 수 있게 될 것이다.

재밌는 점은 액티비티를 제외한 나머지 컴포넌트는 화면을 가지지 않고도 각자 중요한 역할을 하게 된다는 점을 알게 되었고 안드로이드 개발시 어떤 기능을 위해 어떤 컴포넌트를 사용해야 적절한지에 대해 알게 되었다.

안드로이드 입문 3일차가 간단히 배운 내용을 정리한 것이므로 글에 오류가 있을 수 있습니다.

profile
기억하기 위해 혹은 잊어버리기 위해 글을 씁니다.
post-custom-banner

0개의 댓글