[Android] 안드로이드 기본 요소(4대 Component)

2022. 9. 27. 19:04·Android
목차
  1. 앱 구성 요소
  2. 1. Activity
  3. 2. Service
  4. 3. Broadcast Receiver
  5. 4. Content Provider

앱 구성 요소

Android 앱의 필수적인 구성요소로, 각각은 시스템이나 사용자가 앱에 들어올 수 있는 진입점(EntryPoint)의 역할을 한다. 이 구성요소는 크게 Activity, Service, Broadcast Reciever, Content Provider 총 4가지로 분류된다.

1. Activity

  • Activity란 앱과 사용자가 상호작용을 하기 위한 진입점이다. 앱을 실행할 때에는 앱을 전체적으로 호출하는 것이 아니라 앱의 Activity를 호출한다.
  • 모든 앱에 반드시 1개 이상 존재해야 한다.
  • Activity는 사용자의 상호작용을 위한 UI가 있다. 앱이 실행되면 화면이 표시되고, 사용자의 입력값을 받으며, 사용자에게 제공하고자 하는 내용을 화면에 표시한다. 사용자의 입력값을 받는다는 것은 화면을 클릭하거나 더블 클릭, 롱 클릭, 스와이프, Drag and Drop 등을 의미한다.
  • 생명주기(LifeCycle)이 있다.

Android 생명주기

2. Service

  • 백그라운드에서 오래 실행되는 작업 수행을 위한 Component이다.
  • 사용자가 다른 앱으로 전환하더라도 백그라운드에서 계속 실행한다.
  • UI가 없다.

Service 종류

  • 포그라운드 서비스: 사용자에게 잘 보이는 작업이다. 포그라운드 서비스의 경우 반드시 알림을 표시해야하며, 사용자가 앱과 상호작용하지 않을 때(앱을 사용하지 않을 때)에도 계속 실행된다. 음악 재생과 같은 작업이 대표적인 예이다.
  • 백그라운드 서비스: 사용자에게 직접 보이지 않는 작업이다. 예를 들어 저장소를 압축하거나 게임 업데이트, 파일 압축 등이 있다.
    • 앱이 API레벨 26 이상을 대상으로 하는 경우 백그라운드 서비스에서 진행해야하는 작업이 즉시 실행해야하는 것은 Work Manager, 지연 작업, 정시에 해야하는 경우에는 Alarm Manager를 사용한다.
  • 바인드 서비스: 앱 Component가 bindService를 호출해 서비스를 호출하면 서비스가 바인딩 된다. 바인딩된 서비스는 Client - Server 인터페이스를 제공해 서비스와 상호작용을 한다. 여러개가 한꺼번에 바인딩 될 수 있고, 바인딩 된 Component가 모두 종류되면 서비스도 종료된다.

좌: 포그라운드 or 백그라운드 실행 됐을 때의 LifeCycle / 우: 바인드 된 서비스의 LifeCycle

3. Broadcast Receiver

  • 안드로이드 OS에서 발생하는 이벤트와 정보를 앱에서 수신할 수 있도록 하는 UI가 없는 구성요소이다.
  • 불특정 다수를 대상으로 발송된 특정 이벤트(배터리 부족 알림, 네트워크 끊김 알림, 문자 수신, 파일 다운로드 완료, 화면 꺼짐, 사진 캡쳐 등)에 대해 응답하고 처리하는 컴포넌트이다.
  • 다른 컴포넌트에서 직접적으로 호출이 불가능하다.
  • 앱에 필요하다고 생각되는 메시지에 응답할 수 있도록 Broadcast Receiver에 등록할 수 있다.
  • Broadcast Receiver 클래스 안에 onReceive() 메소드를 이용하여 Intent 객체로 발송된 특정 Broadcast 메시지를 처리할 수 있다.
  • Broadcast 메시지를 담은 Intent 객체를 sendBroadcast() 혹은 sendOrderedBroadcast(), sendStickyBroadcast() 메소드 등을 통해 발송하여 해당 Broadcast Receiver가 응답하게 한다.

 

4. Content Provider

  • 파일 시스템, SQLite DB, 웹 상이나 앱이 엑세스할 수 있는 다른 모든 영구 저장 위치에 저장 가능한 앱 데이터의 공유형 집합을 관리한다.
  • 다른 앱은 Content Provider를 통해 해당 데이터를 질의하거나, 수정할 수 있다.
  • 연락처 정보나 갤러리 이미지 또는 비디오와 같이 용량이 큰 데이터를 공유하는 데에 적합하다. (용량이 작은 데이터는 Intent로 공유)
  1. 앱 구성 요소
  2. 1. Activity
  3. 2. Service
  4. 3. Broadcast Receiver
  5. 4. Content Provider
'Android' 카테고리의 다른 글
  • [Android] View Class
  • [Android] 안드로이드에서 사용하는 6가지 주요 Layout!
  • [Android] Palette에서 자주 사용되는 View
  • [Android] 안드로이드 기본 요소(Manifest, Intent)
wbnh09
wbnh09
개발 블로그
wbnh09
devAndroid
wbnh09
  • 분류 전체보기 (38)
    • Git (8)
    • Java & Kotlin (14)
    • Android (10)
    • CS (1)
    • Algorithm (1)
      • Java (1)
      • Kotlin (0)
    • scrcpy (3)
    • Mac (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리자

공지사항

인기 글

최근 글

최근 댓글

hELLO· Designed By정상우.v4.5.2
wbnh09
[Android] 안드로이드 기본 요소(4대 Component)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.