CS/Android
Component
졔졔311
2025. 2. 28. 11:36
728x90
반응형
component란?
- 앱을 구성하는 핵심적인 요소.
- component 각각의 역할이 정해져 있으며, 독립적으로 동작하면서도 서로 연결되어 앱이 작동하도록 함.
- component들은 AndroidManifest.xml에 등록되어야 하며, 시스템에 의해 관리됨.
android의 4대 component
- Activity
- 화면을 담당하는 컴포넌트
- ex) 로그인 화면, 메인 화면 등
- onCreate(), onResume(), onDestroy() 등 라이프사이클을 가짐
- 사용자의 입력을 받고 화면을 렌더링하며 상호작용 함
- Activity들은 하나의 Task(작업 단위, ex. 앱의 화면 흐름) 내에서 계층적으로 쌓임(Back Stack)
- Service
- UI 없이 백그라운드에서 실행되는 작업
- ex) 음악 재생, 데이터 동기화, 위치 추적
- Activity와는 독립적으로 실행
- Foreground Service(알림 포함)와 background Service(알림 없이 실행)로 나뉨
- Service는 단독 실행되거나 Activity에 의해 호출됨
- Bound Service는 Activity와 직접 통신 가능
- BroadcastReceiver
- 시스템 또는 앱 내부에서 발생하는 특정 이벤트를 감지하고 반응
- ex) 네트워크 변경 감지, 배터리 부족 알림, 앱 설치 완료 감지
- 비동기적으로 동작. UI를 직접 업데이트 x → 독립적이지만 Service나 Activity와 연계
- ContentProvider
- 앱 간 데이터 공유를 가능하게 하는 컴포넌트
- ex) 연락처 앱, 갤러리, SQLite DB 연동
- SQLite, 파일, 네트워크 등 다양한 저장소에서 데이터를 가져와 다른 앱과 공유 가능
- 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
반응형