1. Intent
Component에 Action, Data 등을 전달하는 메시지 객체
일반적으로 다음 세 가지 종류로 요약된다
- Activity 시작
- Service 시작
- Broadcast 전달
2. Activity
사용자 인터페이스 화면을 관리하는 Component
- 안드로이드 애플리케이션은 반드시 하나의 Activity를 가져야 함
- 각 액티비티는 매니페스트 파일에 등록되어 있어야 함
- Activity의 크기는 Status Bar 영역을 제외한 화면 전체로 고정 (원하는 위치에 원하는 크기로 변경할 수 없음)
- 2개의 Activity를 동시에 보여줄 수 없음
- 다른 애플리케이션의 Activity를 불러낼 수 있음
- 하나 이상의 View를 가질 수 있음 (Activity 내에는 Fragment를 추가하여 화면을 분할하여 별도로 조작 가능)
3. Service
특정 Activity와 상관 없이 백그라운드에서 실행되는 Component
- UI 없음 (화면 구성 레이아웃 작성 불필요)
- 한번 시작된 Service는 애플리케이션이 종료되고 다른 애플리케이션으로 이동해도 계속 백그라운드에서 실행됨
- 모든 Service는 Service 클래스를 상속받아서 작성됨
- 네트워크를 통하여 데이터를 꺼내올 수 있음
4. BroadcastReceiver
특정 브로드캐스트에 반응하는 Component
- 일반적으로 UI 없음
- 단말기에서 발생하는 일 중에서 어플리케이션이 알아야 하는 상황이 발생하면 방송을 해줌
- BroadcastReceiver를 통해 상황을 감지하고 적절한 작업을 수행함
- 10초 이내의 작업만을 보증하므로 오랜 시간 동작해야 한다면 별도의 스레드로 처리하거나 서비스에 구현해야 함
5. Content Provider
애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 Component (URI 사용하여 CRUD 가능)
- 데이터는 파일 시스템이나 SQLite 데이터베이스, 웹상에 저장 가능
- 콘텐트 제공자를 통해서 다른 애플리케이션의 데이터를 쿼리하거나 변경 가능
MVC 모델 외에 MVP, MVVM 등 모델에 대해서는 차후 글에서 다루도록 하겠음
출처
https://developer.android.com/guide/components/
https://kairo96.gitbooks.io/android/content/
http://ggodol.tistory.com/