안드로이드 4대 컴포넌트

최준근·2022년 1월 10일
0

안드로이드공부

목록 보기
1/1

안드로이드 4대 컴포넌트

  • Activiy(액티비티)
  • Service(서비스)
  • Broadcast Receiver(방송수신자)
  • Content Provider (콘텐츠제공자)

컴포넌트란?

애플리케이션의 구성단위입니다. 컴포넌트를 조합하여 하나의 애플리케이션을 만드는 것을 의미합니다.
각 컴포넌트 들은 인텐트를 통해 서로 상호작용을 합니다.

Activiy(액티비티)

UI화면을 담당하는 컴포넌트로 사용자와 상호작용을 하는 인터페이스 입니다.
인텐트를 통해 다른 애플리케이션의 액티비티를 호출 할 수 있습니다.

  • Activity는 1개 이상의 View 또는 ViewGroup을 포함합니다.
  • 2개이상의 Activity를 동시에 Disply할 수 없습니다.
  • 반드시 애플리케이션에 하나 이상의 Activity가 존재 하여야 합니다.
  • Activity에 프레그먼트를 추가하여 화면을 분할 시킬 수 있습니다.

Service(서비스)

서비스는 사용자와 직접적으로 상호작용을 하는 요소는 아닙니다.
백그라운드에서 작업을 처리하기 위해 서비스를 사용하고 서비스는 메인 스레드에서 동작 하기 때문에 서비스내에서 별도의 스레드를 생성하여 작업을 처리해야 합니다.

  • 네트워크와 연동이 가능합니다.
  • 별도의 UI를 가지지 않고 백그라운드에서 수행됩니다.
  • 액티비티와 서비스는 UI스레드라고 불리는 동일한 애플리케이션 스레드로 실행합니다.
  • 애플리케이션이 종료되어도 이미 시작된 서비스는 백그라운드에서 계속 동작합니다.

BroadCast Receiver(방송 수신자)

안드로이드 OS로 부터 발생하는 각종 이벤트와 정보를 받아와 핸들링하는 컴포넌트로
사용자 안드로이드 디바이스 시스템 부팅시 앱 초기화 네트워크 끊김등등 특수한 이벤트에 대한 처리나 배터리 부족알림, 문자 수신과 같은 정보를 받아 처리를 해야할 때 동작합니다.
안드로이드 OS에서 메신저 앱 또는 문자메세지가 오면 모든 앱에 문저ㅏ 메세지가 왔다 라는 하나의 정보를 방송(Broadcast)를 합니다.

  • 거의 대부분 UI를 가지지 않습니다.
  • 안드로이드 디바이스에 특수한 상황에 대응하기위해 사용합니다.
  • 특정한 상황을 제외하고 브로드캐스트는 시스템에서 시작합니다.

Content provider(콘텐츠 제공자)

데이터를 관리하고 다른 애플리케이션의 데이터를 제공하는데 사용되는 컴포넌트입니다.
특정한 애플리케이션이 사용하고 있는 데이터베이스를 공유하기 위해 사용되기도 합니다.
애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공합니다.

  • SQL LiteDB/ WEB/ 파일입출력 등을 통해서 데이터를 관리합니다.
  • 외부 애플리케이션이 현재 실행중인 애플리케이션 내에 있는 데이터베이스에 함부로 접근하지 못하게 하면서 내 자신의 보여주고 싶은 데이터는 공개할 수 있도록 도와줍니다.
  • 작은 데이터는 인텐트로 애플리케이션끼리 데이터를 공유하지만, 사진파일이나 음악 같은 용량이 큰 데이터들을 공유하는데 적합합니다.
  • 프로바이저는 데이터의 read(읽기), Write(쓰기) 에 대한 퍼미션이 있어야 애플리케이션에 접근이 가능합니다.
  • 데이터 베이스에서 사용하는 CRUD(Create,Read,Update,Delete)를 준수합니다.

Intent(인텐트)

애플리케이션 컴포넌트(구성요소)간에 작업 수행을 위한 정보를 전달하는 역할으로 일종의 통신수단입니다.
인텐트를 가장 많이 사용하는 예로는 액티비티 간의 화면전환(이동)이 있습니다.
인텐트는 컴포넌트 A가 컴포넌트 B를 호출할 때 필요한 정보를 가지고 있습니다.
이 정보에는 호출 대상이 되는 컴포넌트 B의 이름이 명시적으로 표시가 됨과 동시에 속성들이 암시적으로 표시되기도 합니다.
호출된 컴포넌트 B가 호출한 컴포넌트 A로 어떠한 결과를 전달할 때에도 인텐트가 사용됩니다,

  • 서로 독립적으로 동작하는 4개의 컴포넌트 간의 상호통신을 위한 장치입니다.
  • 컴포넌트에 액션(Action), 데이터(Data)등을 전달합니다.
  • 인텐트를 통하여 다른 애플리케이션의 컴포넌트를 활성화 시킬 수 있습니다.
profile
느려도 좋으니 꾸준하게

0개의 댓글