컴포넌트(Component)
안드로이드의 컴포넌트는 "앱을 구성하는 독립적인 실행 단위"이다.
때문에 컴포넌트는 직접 결합하지 않고 안드로이드 시스템을 통해 관리되고 실행된다.
컴포넌트는 4가지 종류가 있고, 액티비티(Activity), 서비스(Service), 브로드캐스트 리시버(Broadcast Receiver), 콘텐츠 프로바이더(Content Provider)가 있다.

이제 하나씩 살펴보자.
액티비티(Activity) 컴포넌트
액티비티 컴포넌트는 앱의 화면을 구성하는 컴포넌트로, 사용자와 상호작용하는 역할을 한다.
액티비티(Activity) 컴포넌트의 역할
- 액티비티 간 전환은 인텐트(Intent)를 통해 이루어진다.
- 액티비티는 생명주기(Life Cycle)를 가지고 있어, 관련 메소드들을 재정의할 수 있다.
- 하나의 Application에는 하나 이상의 액티비티가 있어야 하며, 액티비티는 Manifest에 등록해주어야 한다.
서비스(Service) 컴포넌트
서비스 컴포넌트는 오래 걸리는 작업을 백그라운드에서 처리할 수 있게 해주는 컴포넌트로, 화면을 띄우지 않는다.
서비스(Service) 컴포넌트의 역할
- 생명주기(Life Cycle)를 시스템에서 관리한다.
- 메인 스레드에서 작동, 액티비티가 비활성화되면 액티비티보다 우선순위가 높다.
서비스(Service) 컴포넌트의 유형
1. 포그라운드 서비스(Foreground Service)
: 사용자에게 중요한 백그라운드 작업을 실행하며 startForeground()에서 Notification을 띄워줘야 한다.
2. 백그라운드 서비스(Background Service)
: 사용자에게 보이지 않는 작업을 수행한다.
3. 바인딩 서비스(Binding Service)
: 다른 컴포넌트와 바인딩하여 상호작용할 수 있는 서비스로, IPC(프로세스 간 통신)를 지원한다.
브로드캐스트 리시버(Broadcast Receiver) 컴포넌트
브로드캐스트 리시버 컴포넌트는 시스템 혹은 다른 어플리케이션에서 보내는 이벤트를 수신하고 처리하는 컴포넌트이다.
브로드캐스트 리시버(Broadcast Receiver) 컴포넌트의 역할
- Android 시스템은 시스템 부팅 또는 기기 충전과 같은 이벤트가 발생하면 브로드캐스트를 전송한다.
- 브로드캐스트는 정적 리시버 또는 동적 리시버 두 가지 방식으로 수신된다.
- sendBroadcast()로 자체적으로 이벤트를 정의하여 전송할 수 있다.
■ 정적 리시버
- AndroidManifest.xml 파일에 등록되며 생명주기(Life Cycle)과 무관하게 동작한다.
- 앱이 설치되면 즉시 사용 가능하며 등록과 해지가 자유롭지 못하다.(Manifest 파일로 수정해야지만 가능하다)
■ 동적 리시버
- Activity와 같은 컴포넌트에서 프로그래밍적으로 등록하며 생명주기(Life Cycle) 내에서 등록 및 삭제 처리가 필요하다.
(registerReceiver(), unregisterReceiver())
- 해당 코드가 실행될 때 사용 가능하며 코드 내에서 필요에 따라 등록 및 삭제가 가능하다.
콘텐츠 프로바이더(Content Provider) 컴포넌트
콘텐츠 프로바이더 컴포넌트는 다른 앱과 데이터를 공유하는 컴포넌트이다.
콘텐츠 프로바이더(Content Provider) 컴포넌트의 역할
- 주소록, 갤러리, 카메라 등 안드로이드 기본 앱과 연동할 수 있다.
- 기본 앱과 연동할 때는 접근 권한(Request Permission)이 필요하다.
- Content Resolver로 Content Provider가 관리하는 저장소에 접근하고 데이터를 조작할 수 있다.
※ insert(), query(), update(), delete()
:)
출처
https://superohinsung.tistory.com/54
'Android' 카테고리의 다른 글
| [Android] 클린 아키텍처(Clean Architecture) (2) | 2025.08.11 |
|---|---|
| [Android] Work Manager(+Job Scheduler) (2) | 2025.08.09 |
| [Android] 안드로이드 권장 아키텍처 (4) | 2025.07.31 |
| [Android] Fragment의 데이터 통신 (1) | 2025.06.16 |
| [Android] 스레드(Thread) (0) | 2025.06.12 |