일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- pod install
- SwiftUI
- DevelopmentRegion
- ViewBuilder
- development language
- 기존 앱
- 개발자 면접
- url 관찰
- List
- convert base64
- url 추적
- swift
- transformation.map
- Side Menu
- GeometryReader
- DataBinding
- base64 변환
- UIPresentationController
- swift #swift keychain #keychain 사용법
- 상단 탭바
- Android
- Tuist
- Swift Package Manager
- UIViewControllerTransitioningDelegate
- oberve url
- ios
- notifychanged
- 스크롤 탭
- detect url
- scrolling tab
- Today
- Total
버그 잡이
[개발자 면접] 안드로이드 4대 구성요소 (Activity, Service, Receiver, Provider) 본문
[개발자 면접] 안드로이드 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때문이다.
'안드로이드 > 4대 구성요소' 카테고리의 다른 글
android 백그라운드 음악 재생 어떤 service를 쓸 것인가? (0) | 2020.05.06 |
---|---|
Fragment 왜 쓰는가? #frgment 탄생배경 #fragment 적용사례 (0) | 2020.03.24 |