안드로이드 4대 컴포넌트

2022. 9. 26. 23:54android

안드로이드 4대 컴포넌트

안드로이드의 컴포넌트 중 구성요소로 필수적인 요소가 있다.

첫번째 액티비티

두번째 서비스

세번째 브로드캐스트 리시버

네번째 콘텐츠 제공자

 

먼저, 액티비티는 우리가 너무나 익숙한 것이다.

안드로이드 스튜디오로 앱 개발을 한번이라도 해본 사람은 무조건 봤을것이다.

 

1. 액티비티

 

액티비티( Activity )는 쉽게 말하면 화면이고,

좀 더 디테일하게 말하면 사용자와 상호작용하기 위한 진입점이며

화면을 동작 하기 위한 여러 요소들이 모여있는 컴포넌트이다.

 

2. 서비스

 

서비스는 쉽게 말하면 보이지 않는 일꾼이다.

예를 들어, 멜론을 보자.멜론으로 노래를 듣다가 카카오톡을 확인하고 싶어서 카카오톡으로 앱을 바꿨다.

그래도 음악은 계속 나온다.또 만약에 핸드폰을 무언가 다운로드를 받는다고 해보자.

다운로드를 받는 동안 가만히 있나?? 아니다.

다른 활동도 여러개 할 수 있다.

이처럼 서비스는 백그라운드에서 기능을 수행하는 컴포넌트이다.

 

좀 더 자세히 들어가면 비동기 작업을 위한 스레드를 생각해봐야 한다.(이건 나중에 따로 작성해야겠다.)

 

3. 컨텐트 프로바이더

 

이 친구는 이름처럼 컨텐츠를 제공하는 컴포넌트이다.

중앙 저장소에 엑세스를 처리하고 요청 시 앱에서 다른 앱으로 데이터를 제공할 수 있다.

데이터에 대한 퍼미션도 있어야하고, 접근할때는 CRUD Operation 을 따른다.

DB의 세부 정보는 숨기고 데이터를 공유할 수 있으며 

텍스트만 아니라 이미지와 동영상도 공유 가능하다.

대표적으로 연락처에 접근한다거나 사진첩에 접근하는 등이 있다.

콘텐트 프로바이더는 콘텐츠 URI 를 통해 리소스를 식별하고,

Activity or Fragment <-> CursorLoader(비동기 쿼리를 위한 클래스 ) <-> ContentResolver( 액티비티와 프로바이더의 연결역할) <-> ContentProvider <-> Data Storage 의 과정을 거쳐 데이터를 처리한다.

 

4. 브로드캐스트 리시버

 

브로드캐스트 리시버는 간단하게 알리미이다.

뭘 알리냐

예를 들어 충전이 필요하다든가 전화가 와서 알려준다든가 비행기 모드로 변경하면 비행기 모드가 됐다

이러한 시스템의 변화, 이벤트 등을 알려주는 알리미이다.

당연히 다른 앱의 알림도 설정하면 알림을 받을 수 있다.

브로드캐스트 리시버에는 두가지가 있다.

1. 정적 브로드캐스트 리시버

2. 동적 브로드캐스트 리시버

1번은 Manifest 에 선언해주고 앱이 꺼져있을때도 작동한다.

2번은 앱이 사용중이거나 최소 살아는 있을때 작동한다. 한마디로 Context가 유효할동안 동작한다.