실무를 진행하며 안드로이드에 대해 부족한 점이 느껴져 개인 공부를 하며 스스로 중요하다 생각하는 것에 대해서 짧게나마 포스팅 합니다.
안드로이드 컴포넌트는 크게 4가지로 구분됩니다.
1. 액티비티
2. 서비스
3. 컨텐츠 프로바이더
4. 브로드 캐스트/리시버
(5. 인텐트를 포함해서 5개로 구분하는 경우도 봤습니다.)
액티비티는 안드로이드를 구성하는 가장 기본적이고, 중요한 컴포넌트로 사용자와 앱 사이의 인터페이스 역할을 담당하고 있습니다.
하나의 화면이라고 생각하면 쉽게 이해할 수 있습니다. 앱을 구성하고 있는 "화면" 하나하나가 모두 액티비티라고 볼 수 있습니다.
서비스는 앱을 개발하다보면 가령 사용자의 개입 없이 백그라운드에서 데몬처럼 동작이 필요한 경우가 있는데, 이를 서비스라고 부릅니다.
서비스를 설명하는데 자주 드는 예로 안드로이드 기기에서 음악을 들을때, 음악 플레이어를 종료하더라도 여전히 음악을 감상할수 있는데, 이렇게 화면이 있지 않아도 동작하는 것을 서비스라고 합니다. 서비스는 사용자와 상호작용하는 컴포넌트가 아니며, 데몬과 같은 형태로 동작하는 컴포넌트 입니다.
컨텐츠 프로바이더는 앱과 앱 사이에서 데이터를 주고 받을 수 있는 통로로 표현할 수 있다. 일반적으로 하나의 앱에서 가지는 모든 데이터는 다른 앱에서 사용할 수 없는 구조이기 때문에 컨텐츠 프로바이더라는 컴포넌트를 이용하여 앱과 앱 사이의 데이터를 공유 할 수 있다. 역시나 가장 많이 예로 드는 것이 전화 앱에서 제공하는 통화 기록이 대표적인 예이다. 전화 앱에서 제공하는 통화 기록 같은 경우 데이터 베이스를 통해 관리되는 데이터로, 다른 앱에서 사용할 수 있도록 컨텐츠 프로바이더로 제공해준다. (전화 목록을 통화 기록에서도 볼 수 있고 최근 기록에서도 볼 수 있는 이유는 컨텐츠 프로바이더 때문에 가능하다.)
브로드 캐스트/리시버 컴포넌트는 현재 안드로이드 기기에서 일어나고 있는 일의 상태를 알 수 있게 해준다. 예를 들어 배터리가 5%미만일때 모든 앱을 종료하는 기능을 개발한다면, 배터리의 정보를 얻어와야 할 것이다. 이런 알림 기능을 제공하는 것이 브로드 캐스트/리시버 이다.
다양한 앱들을 만들며 다행히도(?) 4가지 컴포넌트를 사용하는데 있어 어느정도 자유롭게 하고있다!(무한 삽질 x 100)
'Android > Development Tips' 카테고리의 다른 글
[펌] Activity 스택 intent flag (0) | 2018.07.12 |
---|---|
Android NDK (0) | 2018.04.12 |
Measuring of String in android (0) | 2018.02.12 |
안드로이드 프로세스와 스레드 (0) | 2017.12.03 |
액티비티와 생명주기 (0) | 2017.12.03 |