버그 잡이

[개발자 면접] 안드로이드 4대 구성요소 (Activity, Service, Receiver, Provider) 본문

안드로이드/4대 구성요소

[개발자 면접] 안드로이드 4대 구성요소 (Activity, Service, Receiver, Provider)

버그잡이 2020. 3. 23. 15:29

면접을 대비하여 안드로이드 4대 구성요소에 대해서 정리해보겠습니다.

 

 

1. Activity

 

- UI를 담당하는 컴포넌트

 

- 레이아웃을 바탕으로 화면을 그려주고 화면에서 버튼 클릭시 동작과 같은 처리를 담당한다.

 

 

 

 

 

2. Service

 

- UI없이 백그라운드에서 작동하는 컴포넌트

  ex) 음악 재생

 

시작은 startService()bindService()로 시작할 수 있다.

 

*BindService

  - Service의 상태를 activity UI에 반영하고 싶을때 사용

    ex) 음악 재생 상태에 따라 music player 버튼 모양 변경 

 

 

+추가적인 개념으로IntentService가 있다.

 

*IntentService

  - 메인 스레드가 아닌 새로운 스레드에서 동작.

  - 부하가 큰 작업들은 메인 스레드에서 같이 돌릴 경우 앱 성능에 영향을 줄 수 있기 때문에 IntentService 사용

    ex) 파일 다운로드

 

 

 

 

 

3. Receiver

 

- 백그라운드에서 실행되며, 특정 신호에 반응하는 컴포넌트

  ex) 스크린 on, off 인식

 

- 매니페스트에 등록되어있으면 시스템이 이를 인식하고 해당 작업을 실행시켜주는 것이다.

 

- Main Thread에서 동작하며 10초 이상의 과업이 부과될 경우 앱이 죽을 수 있다.

 

- 수동적인 기기 동작 신호 인식 뿐만 아니라 AlarmManager 등을 통해서 능동적으로 신호를 줄 수 있다.

  ex) AlarmManger로 특정 시간에 Receiver가 동작하도록 설정. 

        -> Receiver에서 notificationManager로 푸시 알람 생성

 

 

 

 

 

 

 

4. Content Provider

 

- 앱 간의 데이터 공유를 위해 사용하는 컴포넌트

 

- 앱 내부 데이터만 사용할 것이라면 그냥 sqlite, room 을 쓰면 된다. 

   -> 하지만 다른 앱의 데이터를 가져오려면(또는 내 앱의 데이터를 공유하려면) content provider를 사용해야함.

 

- 주소록, 파일, 갤러리 에서 데이터를 가져올 수 있는 것도 이 content provider때문이다.

 

 

반응형
Comments