📱 Android

[Android] 4대 Component

콩드로이드 2022. 7. 5. 14:59

Component

Application의 구성 요소입니다 

Manifest 파일에 등록 필수 🔍 시스템에 컴포넌트를 알려야하기 때문에

일반 클래스와의 차이

일반 클래스:  생명주기 관리  개발자 코드

컴포넌트 클래스 : 안드로이드 시스템에서 생명주기 관리 

또, 앱 안에서 독립된 실행단위로 이로 인해 안드로이드는 앱 실행 시점이 다양합니다 

 

안드로이드에선 4개의 Component가 존재하는데, 각각 Component들에 알아보겠습니다

생성방법이나 사용법에 대해선 자세히 다루진 않겠습니다 😭

 


1. Activity

화면을 구성하고 사용자와 상호작용을 담당하는 컴포넌트 

 

2. Broadcast Receiver

시스템에 어떤 이벤트가 발생 (ex.부팅, 배터리상태, 화면 On/Off)하면 실행되는 컴포넌트

Broadcast Receiver를 등록하려면

1) manifest에 선언해서 등록하거나

2) 동적으로 액티비티나 서비스에서 선언 후 registerReceiver()로 시스템에 등록, 해제 시엔 unregisterReceiver 등록 필수 

선언 시에는 Broadcast Receiver를 상속받고 onReceive함수를 override해서 작성합니다

실행하려면 sendReceiver를 이용해 인텐트를 시스템에 전달해야합니다 

 

3. Service

백그라운드 작업을 하는 컴포넌트로 , 장시간 실행해야 할 업무를 담당합니다 

화면을 구성하진 않습니다 

Service를 상속받고 다양한 함수를 override 가능하지만, onBind()는 필수로 구현해야합니다

startService, bindService로 서비스를 실행합니다

Service의 종류

1. Foreground

: 사용자에게 진행상황이 보여줘야하는 경우에 사용

2. Background

: 백그라운드에서 실행되지만, 유저에게 특별히 진행사황을 보여주지 않아도 될 경우에 사용

3. Bound

: 서비스가 bind된 상태 즉. 서비스가 특별한 클라이언트에 결합된 상태를 의미합니다 

 

4. Content Provider 

앱 데이터를 공유하는 컴포넌트, 앱 간에 데이터를 공유할 수도 있습니다 

필요한 순간 시스템에서 자동으로 생성합니다 

Manifest에 등록 시 다른 컴포넌트와 달리 name뿐만 아니라 authorities도 반드시 선언해야합니다

(*authorities : 외부에서 이 content provider 이용 시 식별값으로 사용되는 문자열)

Content Provider를 사용하려면 ContentResolver 객체를 이용합니다 

ex) 카톡 프로필 변경 시 갤러리앱의 사진을 이용

 


틀리거나 궁금하신 점이나 의견이 있으시면 댓글 부탁드립니다 감사합니다 😊

'📱 Android' 카테고리의 다른 글

[Android] RecyclerView - MultiViewHolder(2)  (0) 2022.07.13
[Android] Fragment LifeCycle  (0) 2022.07.06
[Android] Activity LifeCycle 🧐  (0) 2022.07.03
[Android] MVVM 구현하기  (0) 2022.06.27
[Android] Jetpack Architecture #1 DataBinding  (0) 2022.06.05