# 컴포넌트들의 특징
- 각 컴포넌트들은 하나의 독립적인 형태로 존재한다
- 각 컴포넌트들은 고유의 기능을 수행한다
- 각 컴포넌트들은 인텐트를 통해 서로 상호작용한다
# 각 컴포넌트 설명
액티비티(Activity),서비스(Service),방송 수신자 (BroadCast Receiver),콘텐트 제공자 (Content Provider)
4가지가 있다
1. 액티비티(Activity)
사용자와 상호작용을 담당하는 인터페이스라고 할 수 있다.
가장 처음 안드로이드 스튜디오에서 어플리케이션을 생성하면 만들어지는 MainActivity 또한 하나의 액티비티이며, 이는 사용자가 앱을 처음에 실행하였을 때에 보여지는 메인 액티비티라고 할 수 있습니다.
이와 같이 카메라 화면, 뮤직 어플리케이션 화면, 지도 화면 등 사용자들에게 보여지는 화면을 액티비티의 예로 들 수 있습니다.
- 액티비티(Activity)특징
● 안드로이드 애플리케이션은 반드시 하나 이상의 액티비티를 포함하고 있다.
● 두 개의 액티비티를 동시에 보여줄 수 없음
● 다른 애플리케이션의 액티비티를 불러낼 수 있음
● 액티비티 내에는 프래그먼트(Fragment)를 추가하여 화면을 분할시킬 수 있다.
2. 서비스(Service)
서비스는 사용자와 직접적으로 상호작용하는 요소는 아니다.
백그라운드(Background)에서 어떠한 작업을 처리하기 위해 서비스를 사용
Serivce class를 상속받아 사용할 수 있고, 이 또한 Activity처럼 새로 만든 후에는 manifest 파일에 등록을 해주어야 사용할 수 있다.
이는 액티비티와 달리 화면이 별도로 존재하지 않고, 한번 서비스가 시작되면 어플리케이션이 종료되어도 지속해서 백그라운드에서 실행되게 된다.
음악 어플리케이션에서 음악을 재생한 후, 다른 어플리케이션을 실행하여도 백그라운드에서 계속 음악을 재생하는 등의 기능을 예로 들 수 있다.
- 서비스(Service)특징
● 별도의 UI를 가지지 않으며 백그라운드에서 수행된다.
● 네트워크를 통해서 데이터를 가져올 수 있다.
● 한번 시작된 서비스는 어플리케이션이 종료돼도 계속해서 백그라운드에서 돌아간다.
● 모든 서비스는 Service클래스를 상속받아서 사용한다
3. 방송 수신자 (BroadCast Receiver)
Broadcast Receivier은 간단하게 BR로 표현하기도 한다.
BroadcastReceiver라는 class를 상속받아 사용한다.
안드로이드 OS로부터 발생하는 각종 이벤트와 정보를 받아와 핸들링하는 컴포넌트이다.
우리가 SNS 앱에서 메시지가 오면 이를 화면에서 확인할 수 있듯이, 앱끼리도 특정 앱에서 이벤트가 발생했는지, 그렇지 않은지를 알 수 있도록 하는 것이 바로 BR의 역할이다
문자가 수신되면 수신된 문자를 특정 앱의 BR이 캐치하여 해당 문자가 스팸인지 아닌지 감별하는 기능을 예시로 들 수 있다.
- 방송 수신자(BroadCast Receiver) 특징
● 대부분 UI가 존재하지 않는다.
● 안드로이드 디바이스의 특수한 상황(네트워크 끊김, 배터리 부족 알림 등)에 대응하기 위해 사용된다.
4.콘텐츠 제공자 (Content Provider)
콘텐트 제공자(Content Provider)는 데이터를 관리하고 다른 애플리케이션의 데이터를 제공하는 데 사용되는 컴포넌트이다.
ContentProvider class를 상속받아 사용한다. Content Provider는 간단하게 CP로도 표현한다.
콘텐트 제공자는 생명주기를 가지고 있지 않다.
기본적으로 안드로이드는 주소록, 이미지, 오디오 등의 주요 데이터에 대해서 내장 CP를 제공한다. 예시로, 특정 앱에서 연락처 정보에 대한 내용이 필요하면 CP를 이용하여 연락처 앱을 통해 연락처 정보를 가져올 수 있다.
가져올 뿐만 아니라 필요하다면 데이터 변경 또한 가능하다.
이를 위해서, 데이터의 읽기와 쓰기에 대한 권한이 있어야 해당 데이터에 접근이 가능하다.
- 콘텐트 제공자 (Content Provider) 특징
● 파일 입출력, SQLiteDB, Web 등을 통해서 데이터를 관리한다.
● 음악 또는 사진 파일 등과 같이 용량이 큰 데이터들을 공유하는데 적합하다.
● 데이터베이스에서 흔히 사용되는 CURD(Create, Read, Update, Delete) 원칙을 준수한다
참고자료
https://velog.io/@jojo_devstory/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-Android-4%EB%8C%80-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8
https://coding-factory.tistory.com/205
https://programming-workspace.tistory.com/15
'안드로이드 공부 노트' 카테고리의 다른 글
안드로이드 Fragment LifeCycle(프래그먼트 생명 주기)알아보기! (0) | 2022.01.23 |
---|---|
Android Jetpack - 2편(View Binding) 예제를 이용한 사용법 (0) | 2022.01.22 |
Android Jetpack - 1편 (Room) 예제를 이용한 사용법 (0) | 2022.01.20 |
안드로이드 디자인패턴 - MVC, MVP, MVVM 패턴 (0) | 2022.01.14 |
안드로이드 액티비티 생명주기 (Life Cycle) (0) | 2021.12.15 |