안드로이드 애플리케이션에는 아래의 네 가지 유형의 컴퓨넌트가 존재한다.
액티비티(Activity)
– 하나의 액티비티가 하나의 어플리케이션이 될 수 도 있고, 여러 개의 액티비티가 하나의 애플리케이션이 될 수도 있다.
– 각각의 액티비티는 그리기가 가능한 하나의 디폴트 윈도우가 부여된다.
– 윈도우 내의 하나의 특정 직사각형 영역은 뷰에 의해 제어된다.
– 액티비티는 사용자와 뷰라는 영역을 통해서 상호작용이 이루어진다.
서비스(Service)
– 비쥬얼한 사용자 인터페이스를 가지지 않는다.
– 백그라운드에서 주어진 일을 하고 그 결과를 엑티비티에게 제공 할 수도 있다.
– 액티비티와 다른 컴포넌트처럼 서비스도 애플리케이션 프로세스의 메인 쓰레드 내에서 실행된다. 그러므로 다른 컴포넌트 또는 사용자 인터페이스에 의해 방해받지 않도록 하기 위해서 종종 또 다른 쓰레드를 만들어저 작동시킨다.
브로드캐스트 리시버(Broadcast receiver)
– 브로드캐스트 공지(announcement)를 수신하고 응답한다.
– 사용자 인터페이스를 보여주지 않는다.
– 수신한 정보에 응답하는 액티비티를 시작하거나, 사용자에게 알려주기 위해 노티피케이션(notification) 매니저를 사용할 수 있다.
컨텐트 프로바이더(Content provider)
– 다른 애플리케이션에게 유용한 특정 애플리케이션의 데이터 집합(set)을 만든다.
– 다른 애플리케이션은 컨텐트 리졸버(Content Resolver) 오븍젝트를 사용하여 컨텐트 프로바이더의
메소드를 호출한다.
– 컨텐트 리졸버는 어떤 켄텐트 프로바이더와도 대화할 수 있으며, 그것과 관련된 임의의 프로세서 간 통신(ICP, interprocess communication)을 관리하기 위해 프로바이더와 협력한다.