= 컴포넌트란 구성요소를 의미한다.
다시 말해, 안드로이드 4대 컴포넌트는 안드로이드 앱을 구성하는데 필요한 4개의 요소를 의미한다.

| 액티비티 (Activity) | 서비스 (Service) | 브로드캐스트 리시버 (Broadcast Receiver) | 콘텐트 프로바이더 (Content Provider) |
|---|

= 사용자와 상호작용을 담당하는 인터페이스이다. 앱을 실행할 때는 앱을 전체적으로 호출하는 것이 아닌 앱의 액티비티를 호출한다.
➡️ 액티비티는 생명주기와 관련한 메서드들을 재정의하여 원하는 기능들을 구현할 수 있다.
= 서비스는 액티비티와 반대로 사용자와 직접적으로 상호작용하는 요소는 아니다.
서비스는 주로 백그라운드(BackGround)에서 어떠한 작업을 처리하기 위해서 주로 사용된다.
Application이 종료되어도 Background에서 동작하는 컴포넌트이다.
ex) 타이머앱을 종료해도 타이머는 계속 흘러감.
애플리케이션이 종료되어도 이미 시작된 서비스는 백그라운드에서 계속 동작한다.
포그라운드 서비스 : 사용자에게 잘 보이는 작업.
➡️ 반드시 알림을 표시해야하며, 사용자가 앱과 상호작용하지 않을 때도 계속 실행된다.
백그라운드 서비스 : 사용자에게 직접 보이지 않는 작업.
네트워크와 연동이 가능하다
액티비티와 서비스는 UI 스레드라고 불리는 동일한 애플리케이션 스레드로 실행된다.
앱이 API 26이상을 대상으로 할 경우.
즉시 실행해야하는 작업 : Work Manager
지연 작업 : Alarm Manager
바인드 서비스 : 앱 컴포넌트가 bindService를 호출해 서비스를 호출하면 서비스가 바인딩 된다.
➡️ 바인딩 된 서비스는 클라이언트-서버 인터페이스를 제공해 서비스와 상호작용한다. 여러 개가 한 번에 바인딩 될 수 있고, 바인딩 된 컴포넌트가 모두 종료되면 서비스도 종료된다.
= 브로드캐스트 리시버는 안드로이드 OS로부터 발생하는 각종이벤트와 정보를 받아 핸들링하는 컴포넌트이다.
안드로이드 디바이스의 특수한 상황에 대응하기 위해서 사용되며, 여기서 말하는 특수한 상황이란, 시스템 부팅시 앱 초기화, 네트워크 끊김과 같은 특수한 상황에 대한 처리, 그리고 배터리 부족 알림, 문자 수신같은 정보를 받아서 하는 처리를 의미한다.
= 콘텐트 프로바이더는 데이터를 관리하고 다른 Application의 데이터를 제공하는데 사용되는 컴포넌트이다.
특정한 Application이 사용하고 있는 DB를 공유하기 위해 사용하며, 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공한다.