ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] 안드로이드 4대 컴포넌트
    안드로이드 2022. 1. 3. 16:31
    728x90
    반응형

    안드로이드 앱에 있어 컴포넌트는 필수적인 기본 요소입니다. 각 구성 요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점입니다. 다른 구성 요소에 종속되는 구성 요소도 있습니다. 각 유형은 뚜렷한 목적을 수행하고 각자 나름의 생명주기가 있어 구성요소의 생성 및 소멸 방식을 정의합니다. 

    안드로이드 앱의 4대 컴포넌트

    1. Activity

    Activity는 사용자와 상호작용하기 위한 진입점으로 하나의 사용자 인터페이스 화면을 가지며 특정 작업을 수행하는 컴포넌트입니다.

    안드로이드 앱은 반드시 하나의 Activity를 포함하고 있어야 합니다.

    Activity는 생명주기(Life Cycle)를 가지며, 생명주기를 통해 원하는 기능을 구현합니다.

     

    • Intent를 통해 다른 앱의 Activity를 호출할 수도 있습니다.
    • 2개 이상의 Activity를 동시에 보여줄 수 없습니다.
    • 1개 이상의 View를 포함합니다.

     

    2. Service

    백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점입니다. 이는 백그라운드에서 실행되는 구성요소로, 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행합니다. Service는 UI를 제공하지 않습니다. 다른 구성요소가 서비스를 시작한 다음 실행되도록 두거나 자신에게 바인딩하여 상호작용하게 할 수도 있습니다. 서비스는 메인 스레드에서 동작하며 서비스 내에서 별도의 스레드를 생성하여 작업을 처리해야 합니다.

     

    • 백그라운드에서 실행되는 컴포넌트로 오랫동안 실행되는 작업이나 원격 프로세스를 위한 작업을 할 때 사용된다.
    • 한 번 시작된 Service는 애플리케이션이 종료되고 다른 앱으로 이동해도 계속해도 계속 백그라운드에서 실행된다.
    • 별도의 UI를 가지지 않으며 백그라운드에서 수행됩니다.

     

    3. Broadcast Receiver

    Broadcast Receiver는 시스템이 정기적인 사용자 플로우 밖에서 이벤트를 앱에 전달도록 지원하는 구성요소로, 앱이 시스템 전체의 브로드캐스트 알림에 응답할 수 있게 합니다. Broadcast Receiver도 앱으로 들어갈 수 있는 또 다른 진입점이기 때문에 현재 실행되지 않은 앱에도 시스템이 브로드 캐스트를 전달할 수 있습니다. Broadcast Receiver는 UI를 표시하지 않지만, 상태 표시줄 알림을 생성하여 사용자에게 브로드캐스트가 발생했다고 알릴 수 있습니다.

     

    • 거의 대부분 UI를 가지지 않습니다.
    • 안드로이드 단말기의 특수한 상황에 대응하기 위해 사용됩니다.

     

    4. Content Provider

    Content Provider는 파일 시스템, SQLite 데이터베이스, 웹상이나 앱이 액세스 할 수 있는 다른 모든 영구 저장 위치에 저장 가능한 앱 데이터의 공유형 집합을 관리합니다. 다른 앱은 Content Provider를 통해 해당 데이터를 쿼리 하거나, Content Provider가 허용할 경우에는 수정도 가능합니다. Content Provider를 데이터베이스에 대한 추상화로 생각하기 쉽지만, 시스템 설계 관점에서 핵심 목적이 다릅니다.  시스템의 경우 URI 구성표로 식별되고 이름이 지정된 데이터 항목을 게시할 목적으로 앱에 진입하기 위한 입구입니다.

     

    • 파일 시스템이나 SQLite 데이터베이스, 웹 상에 있는 데이터를 관리하고 다른 애플리케이션 데이터를 제공하는 컴포넌트.
    • 외부 애플이케이션이 현재 실행 중인 애플리케이션 내에 있는 데이터 베이스에 함부로 접근하지 못하게 할 수 있으면서 나 자신이 공개하고 공유하고 싶은 데이터만 공유할 수 있도록 해줍니다.

     

    구성요소  활성화

    구성요소 중 Activity, Service, 브로드캐스트 리시버는 Intent라는 비동기식 메시지로 활성화됩니다. Intent는 런타임에서 각 구성 요소를 서로 바인딩합니다. 이것은 일종의 메신저라고 생각하면 됩니다. 즉 구성 요소가 어느 애플리케이션에 속하든 관계없이 다른 구성 요소로부터 작업을 요청하는 역할을 합니다. 

     

    • 서로 독립적으로 동작하는 4대 컴포넌트들 간의 상호 통신을 위한 장치
    • 컴포넌트에 Action, Data 등을 전달합니다.
    • Intent를 통해 다른 애플리케이션의 컴포넌트를 활성화시킬 수 있습니다.
    반응형
    출처
    https://developer.android.com/guide/components/fundamentals?hl=ko
    https://velog.io/@jojo_devstory/안드로이드-Android-4대-컴포넌트
    728x90
    반응형

    댓글

Designed by ZibroTistory.