
Published 2022. 6. 19. 19:47
앱 구성 요소
Android 앱의 필수적인 기본 구성 요소는 크게
4개로 이루어져있으며 각자 독립된 형태로 구성되어있습니다.
✅Activity
Ui (User interface) 유저와 상호작용하기 위한 화면
여러 화면이 존재할 시 데이터 공유가 가능하며 이를 위해 Activity Class를 상속 받아 구현해야합니다.
✅Service
백그라운드 프로세스, 사용자에게 보이지 않는 곳에서 동작
다른 앱을 실행 하더라도 계속 실행
1.지속적으로 장시간 동작해야 하는 기능 : 음악 시간, 영화 시간
2.원격 프로세스 기능 : 파일 다운로드, 음악 재생 (네트워크 연동)
Service 종류
- Foreground → 다운로드 진행도, 음악재생
- Background → Ui와 상관 없이 실행하는 서비스
- bind → 서비스간 상호작용
Service Class를 상속 받아 생명주기 메소드를 구현해야합니다. (메인 스레드에서 동작)
✅BroadCast Receiver
특정이벤트가 발생 했을 시 안드로이드 OS, 안드로이드 앱은 BroadCast를 전송하며
그에 대응하는 Receiver를 통해 대응합니다.
비행기모드, 배터리 부족, 재부팅 등
Manifast에 receiver 지정
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
</intent-filter>
</receiver>
BroadcastReceiver 서브클래스를 선언하고 onReceive(Context, Intent)를 구현
class MyBroadcastReceiver : BroadcastReceiver()
✅Content Provider
- 데이터를 관리하고 데이터를 제공하는 컴포넌트 Ex) Data Base
- 다른 앱과 데이터 공유를 가능하며 Ex) 연락처 연동
- 데이터 수정도 가능합니다.
<provider android:authorities="list" //데이터 식별 반환형
android:directBootAware=["true" | "false"] //기기 잠금 해제시 실행 허용 여부
android:enabled=["true" | "false"] //인스턴스화 여부 Default : True
android:exported=["true" | "false"] //다른 앱에서도 데이터 공유가 가능한지
android:writePermission="string" > //데이터 수정 허용 여부
</provider>
'Android-Kotlin📱' 카테고리의 다른 글
[Android] Room (Entitiy, DAO, Database) (0) | 2022.07.09 |
---|---|
[안드로이드] 액티비티 라이프 사이클 Activity Life Cycle (0) | 2022.06.29 |
[Android] Constraint Layout Guideline (컨스트레인트 레이아웃 가이드라인) (0) | 2022.06.07 |
[Kotlin] Delegation Pattern, by (0) | 2022.06.01 |
[Kotlin] 날씨 앱 만들기 - Retrofit, RecyclerView (0) | 2022.05.25 |