컴포넌트 (Component) ?
컴포넌트는 구성 요소라는 뜻을 지니고 있다. 다시 말해서, 안드로이드 4대 컴포넌트는 안드로이드 앱을 구성하는데 필요한 4개의 요소를 의미한다. 안드로이드 4대 컴포넌트는 액티비티(Activity), 서비스(Service), 방송 수신자(BroadCast Receiver), 콘텐츠 제공자(Content Provider) 가 있다. 각 컴포넌트는 독립적인 형태로 존재하며, 고유한 기능을 수행하고 인텐트(Intent) 를 통해 상호작용한다.
1. 액티비티 (Activity)
- 액티비티는 사용자가 Application과 상호작용하며 실제로 사용자에게 보이는 화면을 의미한다.
- Application에 화면이 하나도 없으면, 사용자와 상호작용 할 수 없으므로 적어도 하나의 액티비티는 반드시 필요하다.
- 다른 Application의 액티비티 역시 인텐트를 통해 불러올 수 있다.
- 하나 이상의 View 또는 ViewGroup을 가지고 있어야 한다. 여기서 View는 화면에서 눈에 보이는 것들, 예를 들어 텍스트, 버튼, 이미지 등등을 의미하며, ViewGroup은 레이아웃을 의미한다고 볼 수 있다.
2. 서비스 (Service)
- 서비스는 액티비티와 반대로 직접적으로 상호작용하지 않는 요소이다.
- Background에서 어떠한 작업을 처리하기 위해 사용된다.
- Application이 종료되어도 Background에서 동작하는 컴포넌트이다.
- 음악 앱 같은 경우에, Background에서 계속 음악을 재생시키기 때문에 이 기능은 서비스에 해당된다. 그래서 실제로 음악 앱을 꺼놔도(음악 앱을 종료해도) 음악은 별 이상없이 계속 재생되는 것을 확인할 수 있다.
- 타이머 앱 같은 경우에도 마찬가지로, 실제로 타이머를 실행시킨 후 앱을 꺼도 타이머는 계속 작동되므로 이 역시 서비스 기능이다.
3. 방송 수신자(BroadCast Receiver)
- 안드로이드 OS로부터 발생하는 이벤트 정보를 받고 대응하는 컴포넌트이다.
- 대부분 UI를 가지지 않으며, 수신기를 통해 디바이스 상황을 감시하다가 이벤트가 발생하면 해당 이벤트에 맞게 정의한 작업들을 수행하는 역할을 한다. 다시 말해, 디바이스에서 발생하는 중요한 이벤트를 Application에 알려준다.
- 대표적인 예로 배터리 부족, 문자 수신, 전화 수신과 같은 정보를 받아서 이를 처리할 때 동작한다.
참고
2022.10.11 - [프로그래밍/Android] - [Android] 특정 이벤트 발생시 행동(브로드캐스트)
4. 콘텐츠 제공자(Content Provider)
- 콘텐츠 제공자는 데이터를 관리하고 다른 Application의 데이터를 제공하는데 사용되는 컴포넌트이다.
- 데이터를 저장하고, 불러와서 사용할 수 있는 시스템들을 의미한다. 일례로 DB, 파일 시스템 등이 있다.
- 파일 시스템이나 SQLiteDB, 기타 저장소 위치에서 앱이 접근 가능한 저장소의 데이터를 읽거나 쓸 수 있다.
- 용량이 큰 데이터를 공유하는데 적합하다.
- 대표적인 사례로 인스타그램 앱에서 갤러리 앱에 접근하여 사진 파일을 가져오거나 지도 앱에서 자신의 현재 위치를 가져오는 등이 대표적 사례라고 볼 수 있다.
- 이러한 콘텐츠 제공자를 이용하기 위해서는 권한을 획득해야 한다. 이러한 정보들은 민감한 정보들이기 때문에 보통 맨 처음에 앱을 설치하면 바로 권한 요청이 뜨는데, 보안적인 이슈를 고려해서이다.
'ETC > Study' 카테고리의 다른 글
[디자인 패턴] MVC, MVP, MVVM 차이 (0) | 2022.08.23 |
---|---|
[Kotlin] 추상클래스, 인터페이스 차이 (0) | 2022.08.05 |
[Android] Intent란? (0) | 2022.07.08 |
[자료구조] List와 Map의 차이점 (0) | 2022.06.15 |
[Java] HashMap, TreeMap, LinkedHashMap의 차이점 (0) | 2022.06.15 |
댓글