안드로이드 4대 컴포넌트

임찬형·2022년 2월 7일

Android 기본

목록 보기
4/7

1. Activity

  • 다양한 UI 요소들이 존재할 수 있으며 사용자와의 상호작용을 담당.
  • 생명 주기가 존재하며 생명 주기 함수들(onCreate, onStart, onResume, onPause, onStop, onDestroy) 재정의 가능
  • ANR 제한시간은 5초

2. Service

  • 화면을 가지지 않고 백그라운드에서 동작.
  • 액티비티가 종료되더라도 작업을 계속하고 싶을 때 (ex 파일 다운, 음악 재생 등)
  • 다른 컴포넌트에 의존하지 않고 독립적으로 작업 수행
  • 실행 후 중단 외에 제어가 불가능한 Started Service와 컴포넌트와 bound하여 제어할 수 있는 Bound Service로 나뉨
  • 백그라운드에서 동작하지만 기본적으로 메인 스레드에서 실행
  • ANR 제한시간은 20초

3. Broadcast Receiver

  • 전화 or 배터리 or 네트워크 등 기기 정보에 대한 액션을 취하는 역할
    ex) 배터리 부족할 경우 OS에서 Broadcast. 만약 배터리에 관한 수신자를 등록했다면 해당 방송을 받을 수 있음
  • 시스템 뿐만 아니라 각종 앱들이 Broadcast할 수 있음
  • Manifest에 선언하여 한 번 등록하면 해제가 불가능한 정적 리시버와, 동적으로 등록 및 해제가 가능한 동적 리시버로 나뉨
  • 플래그를 통해 동작 제한이 가능함
    ex) FLAG_RECEIVER_REGISTERED_ONLY: 동적 리시버만 방송 수신, FLAG_RECEIVER_FOREGROUND: 우선 순위가 높은 Foreground로 Broadcast
  • 리시버도 메인 스레드에서 동작함
  • ANR 제한시간은 (Foreground Receiver 10초, Background Receiver 60초)

4. Content Provider

  • 외부 앱이 각종 데이터를 접근할 수 있게 약속된 인터페이스를 제공 (DB, 파일, 메모리 등)
  • 외부에 데이터를 공개할 때만 사용

+) Content Resolver: 외부 앱에서 프로바이더를 사용하기 위한 용도 (Provider에 대한 Client 느낌)

0개의 댓글