티스토리 뷰
애플리케이션 4대 컴포넌트
- 각 컴포넌트는 고유한 기능을 가지고 있음.
- 각 컴포넌트는 Intent를 이용하여 메시지 전달가능.
- 각 컴포넌트는 독립적으로 실행이 가능함. ( 즉, 특정 컴포넌트를 실행하기 위해 사전에 실행되어야 하는 컴포넌트가 없다는 것 -> Activity : startActivity ... , Service : startService ... , BroadcastReceiver : sendBroadcast )
1. Activity
- 사용자와 인터페이스가 가능한 Window를 하나 가지고 있는 컴포넌트
- 액티비티 구동 시, Window를 하나 생성하고, Window를 통해 사용자에게 보여주고 싶은 View를 보여줌
- 생성된 액티비티들은 스택으로 관리됨
- 액티비티 구동 요청을 받을 때마다, 새로운 인스턴스를 생성하여 구동됨 ( 기본적으로는... launchMode에 따라 달라)
- 액티비티가 시작되면 일반적으로 화면에 배치할 Layout을 설정 (setContentView를 통해 보여질 Layout를 설정)
2. Service
- 사용자와의 인터페이스 없이 돌아가는 컴포넌트
- 서비스의 인스턴스는 안드로이드내에서 오직 1개만 만들어짐. 서비스를 요청할 때, 이미 구동중인 서비스가 있다면, 기존 서비스에 요청을 처리하도록 하는 방식.
- Service 구동은 startService, bindService를 이용하여 구동시킴. bindService는 Service의 일부 기능을 타 앱이 구동시킬 수 있도록 할 수 있음
3. Broadcast Receiver
- 기기나 다른 애플리케이션에서 발생하는 이벤트를 받아들이는 컴포넌트
- sendBroadcast를 이용해 이벤트(Intent)를 송신하면, receiver에 전달됨
- receiver는 일반적으로 이벤트를 수신하면 서비스를 구동하거나, 이벤트가 발생했음을 사용자에게 알림
* 이벤트 : 기기의 부팅, 화면 꺼짐, SMS 도착 등
4. Content Provider
- Provider는 앱이 가지고 있는 데이터를 다른 앱에서 접근할 수 있도록 만들어주는 컴포넌트
(일반적으로 자신의 앱에서 사용하는 데이터는 자신의 앱만 접근이 가능하나, 공유해야 하는 데이터의 경우 이를 Provider를 통해서 데이터 공유가 가능함)
- Uri를 이용하여 접근
- Read & Write 에 대해 각각 Permission을 설정하여, 허가된 앱만 접근이 가능하도록 처리
- Provider는 getType, query, insert, update, delete, onCreate 를 구현해줘야 함
참조 : https://www.youtube.com/watch?v=O3t_esHOsTk (Android Application 프로그래밍 초급 24강 애플리케이션 컴포넌트 | T 아카데미 )
'android' 카테고리의 다른 글
[android] android clean architecture - 계속적인 업데이트 필요 (0) | 2020.05.28 |
---|---|
[android] 안드로이드 개념 - MVC, Singleton, Observer 패턴 (0) | 2020.05.28 |
[android] 안드로이드 개념 - ANR (0) | 2020.05.28 |
[android] 안드로이드 개념 - ViewHolder (0) | 2020.05.28 |
[android] 안드로이드 - 백그라운드 작업 시 UI 작업 진행 방법 (0) | 2020.05.28 |