CS/Android

Component

졔졔311 2025. 2. 28. 11:36
728x90
반응형

component란?

  • 앱을 구성하는 핵심적인 요소.
  • component 각각의 역할이 정해져 있으며, 독립적으로 동작하면서도 서로 연결되어 앱이 작동하도록 함.
  • component들은 AndroidManifest.xml에 등록되어야 하며, 시스템에 의해 관리됨.

 

android의 4대 component

  1. Activity
    1. 화면을 담당하는 컴포넌트
    2. ex) 로그인 화면, 메인 화면 등
    3. onCreate(), onResume(), onDestroy() 등 라이프사이클을 가짐
    4. 사용자의 입력을 받고 화면을 렌더링하며 상호작용 함
    5. Activity들은 하나의 Task(작업 단위, ex. 앱의 화면 흐름) 내에서 계층적으로 쌓임(Back Stack)
  2. Service
    1. UI 없이 백그라운드에서 실행되는 작업
    2. ex) 음악 재생, 데이터 동기화, 위치 추적
    3. Activity와는 독립적으로 실행
    4. Foreground Service(알림 포함)와 background Service(알림 없이 실행)로 나뉨
    5. Service는 단독 실행되거나 Activity에 의해 호출됨
    6. Bound Service는 Activity와 직접 통신 가능
  3. BroadcastReceiver
    1. 시스템 또는 앱 내부에서 발생하는 특정 이벤트를 감지하고 반응
    2. ex) 네트워크 변경 감지, 배터리 부족 알림, 앱 설치 완료 감지
    3. 비동기적으로 동작. UI를 직접 업데이트 x → 독립적이지만 Service나 Activity와 연계
  4. ContentProvider
    1. 앱 간 데이터 공유를 가능하게 하는 컴포넌트
    2. ex) 연락처 앱, 갤러리, SQLite DB 연동
    3. SQLite, 파일, 네트워크 등 다양한 저장소에서 데이터를 가져와 다른 앱과 공유 가능
    4. ContentResolver를 통해 데이터를 가져옴

 

component hierarchy

앱(Application)

├── Activity (화면)
│    ├── Fragment (Activity 내부 구성 요소)
│    ├── View (UI 요소)
│    ├── ViewModel (MVVM 패턴에서 데이터 관리)

├── Service (백그라운드 작업)
│    ├── Foreground Service (알림과 함께 실행되는 서비스)
│    ├── Background Service (알림 없이 실행되는 서비스)
│    ├── Bound Service (Activity와 연결 가능)

├── BroadcastReceiver (이벤트 감지)
│    ├── 시스템 이벤트 (ex: 부팅 완료, 배터리 상태 변화)
│    ├── 앱 내부 이벤트 (ex: 특정 작업 완료)

└── ContentProvider (데이터 공유)
       ├── SQLite 데이터베이스 접근
       ├── 파일 시스템 접근
       ├── 네트워크 데이터 공유

728x90
반응형