Programing/Android
안드로이드 - 4대 컴포넌트
안중환
2015. 12. 21. 15:34
안드로이드 4대 컴포넌트(component) (출처 -http://ggodol.tistory.com/52)
안드로이드 애플리케이션은 컴포넌트(component)로 구성되어있다. 안드로이드의 4대 컴포넌트는 액티비티(activity), 서비스(service), 방송수신자(broadcast receiver), 콘텐트 제공자(content provider)이다. 각 컴포넌트들은 하나의 독립된 형태로 존재하며, 정해진 역할을 수행한다. 이때, 인텐트를 통하여 다른 애플리케이션의 컴포넌트를 활성화시킬 수 있다.
AndroidManifest.xml의 application 요소 내에 여러개를 등록할 수 있다.
1. 액티비티(activity)
액티비티(activity)는 사용자 인터페이스 화면을 가지며 특정한 작업을 담당하는 컴포넌트이다.
- 일반적으로 UI를 갖는 하나의 스크린을 나타낸다
- 안드로이드 애플리케이션은 반드시 하나의 activity를 가지고 있어야한다
- 각 액티비티는 매니페스트 파일에 등록되어 있어야 한다
- 하나 이상의 View를 가질 수 있다
2. 서비스(service)
서비스(service)는 백그라운드에서 실행되는 컴포넌트로 오랫동안 실행되는 작업이나 원격 프로세스를 위한 작업을 할 때 사용된다.
- UI가 없다
- 한번 시작된 Service는 애플리케이션이 종료되고 다른 애플리케이션으로 이동해도 계속 백그라운드에서 실행된다
- 모든 서비스는 Service 클래스를 상속받아서 작성된다
- 네트워크를 통하여 데이터를 꺼내올 수도 있다
3. 방송수신자(broadcast receiver)
방송수신자(broadcast receiver)는 안드로이드 단말기에서 발생하는 다양한 이벤트/정보를 받고 반응하는 컴포넌트이다. 예를들면 시스템부팅, 배터리 부족, 전화/문자 수신, 네트워크 끊김을 알려주는 것이 방송이다.
- 단말기에서 발생하는 일 중에서 어플리케이션이 알아야 하는 상황이 발생하면 방송을 해준다
- 수신기(BroadcastReceiver)를 통해 상황을 감지하고 적절한 작업을 수행한다
- 일반적으로 UI가 없다
4. 콘텐트 제공자(content provider)
콘텐트 제공자(content provider)는 데이터를 관리하고 다른 애플리케이션 데이터를 제공하는 컴포넌트이다.
- 데이터는 파일 시스템이나 SQLite 데이터베이스, 웹상에 저장될 수 있다
- 콘텐트 제공자를 통해서 다른 애플리케이션의 데이터를 쿼리하거나 변경 가능하다
5. 인텐트(intent)
인텐트는 서로 독립적으로 동작하는 4가지 컴포넌트들 간의 상호 통신을 위한 장치이다. 간단하게 말하면, 컴포넌트 간의 통신수단이다. 인텐트를 통하여 다른 애플리케이션의 컴포넌트를 활성화시킬 수 있다.
참고
- 그림으로 쉽게 설명하는 안드로이드 프로그래밍(생능출판, 천인국 지음)