답변:
Android 애플리케이션에는 세 가지 종류의 구성 요소가 있습니다. 일반적으로 사용자는 자신에 대해 알 필요가 없습니다. 즉, 앱 작성자가 특정 동작을 앱에 프로그래밍 할 수있는 방법입니다. 그러나 작업 관리자와 같이 앱의 동작을 면밀히 관찰하거나 Tasker와 같은 앱으로 작업을 자동화하는 경우 시스템 내에서 응용 프로그램이 어떻게 어울리는지를 이해하면 도움이됩니다.
활동은 구성 요소의 가장 친숙한 유형 : 전체 화면 또는 대화 상자 크기 중 하나는 당신이 볼 수있는 창입니다. 활동은 화면에 표시된 동안에 만 실행됩니다. 액티비티를 종료하면 Android는 해당 앱을 메모리에서 다시 시작할 수 있도록 유지하지만 액티비티는 실행되지 않으므로 배터리 나 네트워크를 사용하지 않습니다. 앱은 intent를 사용하여 활동을 시작합니다 . 의도는 시작할 활동을 명시 적으로 지정하거나 수행 할 조치 (예 : 특정 파일 열기)를 지정할 수 있습니다. 둘 이상의 활동이 의도를 "처리"할 수있는 경우 하나를 선택하라는 대화 상자가 표시됩니다.
서비스는 다른 응용 프로그램 구성 요소입니다. 다른 구성 요소 (활동 또는 다른 서비스)가 서비스를 시작한 후에는 중지 될 때까지 백그라운드에서 실행됩니다. 이는 서비스가 화면에 아무 것도 표시하지 않고 전화기를 깨우거나 ( 깨우기 잠금 사용 ) 배터리를 소모 시키거나 많은 네트워크 데이터를 사용할 수 있음을 의미합니다.
앱은 서비스를 사용하여 서버에서 파일을 다운로드하거나 전자 메일을 확인하거나 위치를 확인하는 등 백그라운드에서 장기 실행 프로세스를 수행 할 수 있습니다. 서비스는 직접 표시되거나 사용자와 상호 작용하지 않지만 "앱 실행 중"목록에 계속 나타납니다. 로부터 설정 앱을 선택 앱 또는 응용 프로그램 관리자를 다음 실행 . 그런 식으로 서비스를 중지 할 수 있지만 일반적으로 필요하지는 않습니다. 서비스는 직접 표시되지 않기 때문에 Android는 서비스보다 활동이 덜 중요하다고 생각하므로 휴대 전화에 더 많은 메모리가 필요한 경우 가장 먼저 종료됩니다.
방송 수신기 는 세 번째 종류의 구성 요소입니다. 서비스와 마찬가지로 백그라운드에서만 존재하며 직접 상호 작용하지 않습니다. 그러나 서비스와 달리 실행 상태를 유지하거나 긴 작업을 수행 할 수 없습니다. 이벤트에 응답하기 위해 존재합니다. 활동 및 서비스와 달리 한 번에 둘 이상의 브로드 캐스트 수신기를 시작할 수 있습니다.
구성 요소 는 하나의 앱에 의도를 브로드 캐스트 하지만 특정 앱을 지정하지 않은 경우가 더 많습니다. 이 경우 의도는 일반적으로 배터리가 부족한 경우와 같이 발생한 이벤트를 나타냅니다. 시스템은 관심을 등록한 (인 텐트 필터 사용 ) 모든 브로드 캐스트 리시버를 찾아서 차례로 실행합니다. 각 브로드 캐스트 수신기는 예를 들어 알림을 작성하여 바로 반응하거나 추가 조치를 취하기 위해 서비스 또는 활동을 시작할 수 있습니다. 브로드 캐스트 리시버가 이벤트를 처리하자마자 중지되고 다른 유사한 이벤트가 브로드 캐스트 될 때까지 다시 실행되지 않습니다.
세 가지 구성 요소가 함께 작동하는 예는 Google Play에서 앱을 다운로드 할 때입니다. 먼저 Google Play 활동은 다운로드 할 콘텐츠를 선택할 수있는 시각적 인터페이스를 제공합니다. 앱 목록은 하나의 활동 일 수 있습니다. "설치"버튼을 클릭하면 다른 활동이 시작되어 확인 또는 지불 대화 상자가 표시됩니다. 확인하면 대화 상자 활동이 서비스를 시작합니다. 활동이 완료되어 더 이상 실행되지 않는 경우에도 서비스는 계속 컨텐츠를 다운로드합니다.
그러나 새 앱을 다운로드하는 동안 전화 연결이 끊어 질 수 있습니다. 이 경우 Google Play의 다운로드 서비스는 브로드 캐스트 수신기를 등록하고 네트워크 연결 변경에 관심이 있다고하는 인 텐트 필터를 사용하여 서비스를 중지합니다. 전화가 인터넷에 연결되면 시스템이 이벤트를 브로드 캐스트합니다. Android는 해당 이벤트를 기다리는 다른 방송 수신기와 함께 Google Play 서비스가 등록한 방송 수신기를 시작합니다. 이 경우 브로드 캐스트 리시버는 다운로드 서비스를 다시 시작합니다. 서비스는 다운로드가 진행됨에 따라 알림을 생성하고, 완료되면 새 패키지가 설치되었음을 다른 앱에 알리기 위해 자체 브로드 캐스트를 보냅니다. 그러면 다른 앱의 브로드 캐스트 수신기가 시작됩니다.
요약해서 말하자면:-