안드로이드 4대 컴포넌트

shin_stealer·2021년 2월 20일
1

앱 구성 요소에는 4가지 유형이 있습니다.

  • Activity
  • Service
  • Broadcast Receiver
  • Content Provider

각 유형은 뚜렷한 목적을 수행하고 각자 수명 주기가 있어
구성 요소의 생성 및 소멸 방식을 정의합니다.

> Activity

  • 액티비티는 Application과 사용자를 이어주는 진입점

  • UI를 포함한 화면 하나를 말한다.

  • 일반적으로, App 은 다수의 Activity 로 이루어져 있고 서로 연결되어 있다.

  • 시스템은 새로운 액티비티를 시작하면 기존에 있던 액티비티를 백스택에 담고나서 새로운 액티비티가 사용자에게 보여진다.

  • 백스택은 Last in First Out 메커니즘을 따르며, 사용자가 뒤로가기 버튼을 눌렀을 때, 스택의 최상위에 있는 (현재 화면에 나와있는) 액티비티를 제거하고 이전의 액티비티를 시작한다.

  • Activity 는 xml 파일 하나와 소스파일 하나로 구성된다.

Service

  • 서비스는 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점이다.
  • 화면이 존재하지 않는다.
  • 서비스는 사용자가 다른 App 을 사용하는 동안 백그라운드에서 음악을 재생하거나, 다른 App을 사용하는 동안 전에 실행되던 App이 종료되지 않고 작동되고 다시 불러올 수 있다.
  • Service가 실행되는 두가지 경우가 있다
    1) 음악 재생같은 서비스 - App은 음악 재생을 포그라운드로 옮기라고 시스템에게 지시한다.
    이 경우, 시스템은 이 서비스의 프로세스가 계속 실행되도록 지속적으로 신경을 써야한다.

2) 정기적인 백그라운드 service 는 사용자가 실행되고 있다고 직접 인식할 수 없는 작업으로, 시스템은 좀 더 자유롭게 프로세스를 관리할 수 있다.

Broadcast Receiver

  • Broadcast Receiver는 App에서 다양한 이벤트와 정보를 받으면 그에 맞는 반응을하는 컴포넌트이다.

  • Broadcasting 은 메세지를 여러 객체에 전달하는 방법을 의미하는데,
    이렇게 전달되는 메세지를 Broadcast Receiver를 사용해서 받을 수 있다.

  • 디바이스에서 발생하는 일 중에서 App 이 알아야하는 상황이 발생하면 알려준다.

  • Receiver를 통해 디바이스의 상황을 감지하고 수신한 메세지에 따라 작업을 수행한다.

  • 안드로이드 App 에서는 시스템이나 다른 App 으로 Broadcast를 보내거나 받을 수 있다.

  • 특정 이벤트가 발생했을 때 전송된다.

  • ex) 베터리가 충전되었을 때, 시스템은 충전이 완료되었다는 Broadcast 메세지를 발신하고 App은 수신한다.

  • 앱에서 여러 개의 Broadcast 를 사용할 수 있지만, 너무 많을 경우 백그랑누드 작업이 계속 되어 메모리의 낭비가 발생할 수 있다.

Content Provider

  • Content Provider는 데이터를 관리하고 다른 Application에 데이터를 제공해주는 컴포넌트이다.
  • 앱과 앱 저장소 사이에서 데이터의 접근을 쉽게 하도록 관리해주는 컴포넌트.
  • 사용하는 이유?
  • App의 직접적인 코드 변경 없이 데이터에 접근 or 변경할 수 있게 도와줌.
  • 다른 사용자들이 App에 접근, 사용, 수정할 권한을 줌 (안전하게)
profile
I am a Blacksmith.

0개의 댓글