[Android] 4대 컴포넌트 뿌시기 (액티비티/서비스/브로드캐스트리시버/콘텐트프로바이더)

김민주·2022년 11월 27일
0

Android

목록 보기
14/21

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


안드로이드를 구성하는 4대 Component를 간단하게 정리해보자.

  • Activity : 화면구성
  • Service : 화면이 없고, 백그라운드 작업에 용이
  • Broadcast Receiver : 앱 또는 기기가 발송하는 방송 수신
  • Content Provider : 데이터베이스, 파일, 네트워크의 데이트를 다른 앱에 공유

각 컴포넌트들은

  • 독립적인 형태로 존재한다.
  • 고유한 기능을 수행한다.
  • 인텐트를 통해 서로 상호작용한다.
  • 시스템 또는 사용자가 앱에 들어갈 때의 진입점(entry-point)이다.


각 컴포넌트들에 대해 자세히 알아보자!


1. Activity

사용자에게 UI가 있는 화면을 제공하며 사용자와 상호작용을 담당하는 인터페이스이다.

  • APP은 1개 이상의 액티비티를 포함한다.
  • 2개 이상의 액티비티가 동시에 display될 수는 없다.
  • 인텐트를 통해 다른 액티비티를 호출할 수 있다.

2. Service

백그라운드에서 작업을 처리하기 위해 실행되는 프로세스이다.

  • 화면UI가 없다.
  • 메인 스레드에서 동작한다.
  • 시작된 서비스는 APP이 종료되어도 백그라운드에서 계속 동작한다.
  • 네트워크를 통해 데이터를 가져올 수 있다.

3. Broadcast Receiver

안드로이드 OS로부터 발생하는 다양한 이벤트와 정보를 받아 핸들링하는 요소이다.
Broadcast는 메시지를 여러 객체에게 전달하는 것을 의미하는데, 이 브로드캐스팅메시지를 intent를 통해 발송하게 되고, 이 브로드캐스트는 방송수신자 객체가 받는다.
앱 초기화, 배터리 부족, 네트워크 오류, 문자 수신 등 이벤트를 처리해야 할 때 동작한다.

  • 대부분 UI가 없다.
  • APP에서 발생하는 이벤트를 수신받아 리시버로 처리한다.
  • 동적리시버와 정적리시버가 있다.
    - 동적리시버: Context가 유효할 동안 동작하며, 사용 시 registerReceiver()로 등록하고 사용하지 않을 경우, unregisterReceiver()로 등록을 해제하여야 한다.
    • 정적리시버: Manifest에 리시버를 등록하면 자동등록되며, 한번 등록시 해제할 수 없다.

4. Content Provider

데이터를 관리하고 APP 간의 데이터를 공유하는데 사용되는 요소이다.

콘텐트 프로바이더는 앱과 앱 저장소사이에서 데이터의 접근을 관리한다.

  • SQLite DB / Web / 파일 입출력 등을 통해서 데이터를 관리한다.
  • 용량이 큰 데이터들을 공유하는데 쓰인다. (작은 데이터는 인텐트로)
  • 데이터의 Read, Write의 권한이 허용되어야 접근이 가능하다.
  • Content Provider로 접근한 데이터의 결과값은 Content Resolver로 받으며, query읽기/insert/update/delete 작업이 가능하다.
profile
𝐃𝐨𝐧'𝐭 𝐛𝐞 𝐚 𝐩𝐫𝐨𝐜𝐫𝐚𝐬𝐭𝐢𝐧𝐚𝐭𝐨𝐫💫

0개의 댓글