안드로이드를 구성하는 기본 4대 컴포넌트 (Activity, Service, BroadCastReceiver, ContentProvider)에 대하여 알아보자.


1. 액티비티(Activity)


액티비티는 어플리케이션의 "하나의 화면"을 의미한다. 음악재생 어플리케이션을 예로 든다면 음악파일 목록 리스트 화면, 음악 즐겨찾기 화면, 음악 재생 및 정지 UI 화면 등등이 각각 하나의 액티비티가 된다.


액티비티는 사용자가 값을 입력하고, 그 결과를 되돌려받는 등 실질적으로 가장 쉽고 많이 접근하는 컴포넌트이기 때문에 가장 신경써야 할 부분이다.




2. 서비스(Service)


사용자와 직접 상호작용을 하는 액티비티와 달리, 화면에 표시되지 않고 백그라운드에서 실행되는 컴포넌트이다. 


예를 들어 음악 재생을 담당하는 부분이 액티비티에 구현되어 있다면, 사용자가 음악을 재생시켜놓고 인터넷 검색을 위해 인터넷을 실행시켰을때 음악 재생이 중지될 것이다. 따라서 인터넷 검색창을 화면에 표시해 놓더라도, 음악 재생은 백그라운드에서 계속적으로 재생되어야 하며, 그것을 담당하는 것이 바로 서비스이다.


혹은 장시간 수행되어야 하는 행동을 백그라운드에서 실행 가능하도록 하는 기능을 한다.


예를 들어 카카오톡 메세지 알림은 사용자가 카카오톡을 실행하여 화면에 띄워놓지 않더라도 언제든지 자신에게 온 메세지를 Notification을 통해 알려주는데, 백그라운드에 카카오톡이 실행되어 있지 않다면 메세지가 온 것을 사용자에게 알려줄 수 없다.



3. 브로드캐스트 리시버(BroadCastReceiver)


시스템의 상태에 관련된 메시지나 어플리케이션의 메시지에 응답하는 역할을 담당한다. 예를 들어 기기의 배터리 부족, 파일 다운로드 완료 등 해당 이벤트가 발생했을때 그것을 캐치한다.


다만 브로드캐스트 리시버 자체는 이벤트를 캐치하는 기능만 담당할 뿐, 사용자에게 이벤트를 알리지는 않는다. 따라서 개발자는 브로드캐스트 리시버가 캐치한 이벤트를 사용자에게 알려주기 위해 Notification 혹은 Toast 를 사용하여 알림을 전달한다.




4. 컨텐트 프로바이더(ContentProvider)


어플리케이션 내의 데이터 (전화번호부의 전화번호, 카카오톡의 메세지)를 다른 어플리케이션과 공유할 수 있는 통로가 된다. A 어플리케이션에서 B 어플리케이션의 데이터에 접근할 때 접근할 수 있는 범위, 방식 등을 정의하여 데이터를 보호하고 공유한다.




https://developer.android.com/guide/components/fundamentals?hl=ko

'안드로이드 개념' 카테고리의 다른 글

[Android] JDK vs SDK vs NDK  (0) 2020.05.16