안드로이드의 주요 4대 컴포넌트라고 하면 액티비티(Activity), 서비스(Service), 브로드캐스트 리시버(Broadcast Recevier), 콘텐트 프로바이더(Content Provider)를 말합니다.
각 컴포넌트들은 하나의 독립된 형태로 존재하며 정해진 역할을 수행합니다. 컴포넌트들 간의 상호 통신은 Intent라는 일종의 메시지 객체를 사용하여 상호 통신을 진행합니다.
액티비티는 UI 화면을 담당하는 컴포넌트 입니다. 액티비티 역할을 하기 위해서는 자바소스에서 Activity 클래스를 상속해야 하며 액티비티가 기본적으로 가지고 있는 생명주기 메소드를 재정의하여 원하는 기능을 구현하는 방식으로 제작합니다. 가장 많이 쓰이는 컴포넌트 이기 때문에 굉장히 중요하다고 볼 수 있습니다.
안드로이드 애플리케이션은 반드시 하나 이상의 Activity를 가지고 있어야합니다.
두 개의 액티비티를 동시에 Display할 수 없습니다.
다른 애플리케이션의 액티비티도 불러낼 수 있습니다.
액티비티 내에는 Fragment를 추가하여 화면을 분할 시킵니다.
서비스는 백그라운드에서 실행되는 프로세스를 의미합니다. 서비스는 화면이 존재하지 않습니다. 하지만 서비스도 애플리케이션의 구성요소 이므로 새로 만든 후에는 항상 매니페스트에 등록을 해주어야합니다. 메인 액티비티에서 서비스를 시작하고 싶은 경우에는 startService()라는 메서드를 이용해 서비스를 실행 시킬 수 있습니다.
화면이 없습니다. 그저 백그라운드에서 돌아가는 컴포넌트입니다.
한번 시작된 서비스는 애플리케이션이 종료되도 계속해서 백그라운드에서 돌아갑니다.
모든 서비스는 Service 클래스를 상속받아서 사용합니다.
네트워크를 통해서 데이터를 가져올 수 있습니다.
방송 수신자란 안드로이드에서 다양한 이벤트와 정보를 받아 반응하는 컴포너트입니다. 브로드 캐스팅은 메시지를 여러 객체에게 전달하는 방법을 의미하는데 이렇게 전달되는 브로드 캐스팅 메시지를 방송수신자라는 애플리케이션의 구성요소를 이용해 받을 수 있습니다.
디바이스에서 발생하는 일 중에서 애플리케이션이 알아야 하는 상황이 발생하면 알려줍니다.
수신기를 통해 디바이스의 상황을 감지하고 적절한 작업을 수행합니다.
대부분 UI가 존재하지 않습니다.
콘텐트 제공자는 데이터를 관리하고 다른 애플리케이션 데이터를 제공해 주는 컴포넌트입니다. 데이터베이스의 데이터를 전달할 때 많이 사용합니다. 콘텐트 제공자는 생명주기를 가지고 있지 않습니다.
파일입출력, SQLiteDB, Web등을 통해서 데이터를 관리합니다.
콘텐트 제공자를 통하여 다른 애플리케이션의 데이터도 변경할 수 있습니다.