Details: Android 4대 구성요소
왜 Activities, Services, Broadcast Receivers, Content Providers는 Android의 4대 핵심 구성요소라고 불릴까요?
Activity, Service, Broadcast Receiver, Content Provider는 Android 애플리케이션이 시스템 및 다른 애플리케이션과 상호 작용할 수 있도록 하는 필수 빌딩 블록이기 때문에 Android의 4대 핵심 구성요소로 간주됩니다. 이러한 구성요소들은 앱의 수명 주기를 관리하고, 동작을 정의하며, 프로세스 간 통신을 가능하게 함으로써 Android의 process 및 application lifecycle model과 밀접하게 연결되어 있습니다.
각 구성요소가 Android 프로세스와 관련되는 방식
Activities:
Activity는 사용자UI를 가진 단일 화면을 나타냅니다. 사용자 상호 작용의 진입점이며 Androidprocess lifecycle과 밀접하게 연결되어 있습니다. 사용자가 앱을 열면 시스템은 앱의process에서Activity를 시작합니다.process가 종료되면Activity는 소멸되며, 앱을 다시 시작하면 새로운process가 생성됩니다.Services:
Service는UI없이 백그라운드 작업을 수행합니다. 애플리케이션이 보이지 않는 상태에서도 실행될 수 있어 음악 재생이나 파일 다운로드와 같은 작업을 가능하게 합니다.Service는 앱의manifest에 지정된android:process속성에 따라 앱과 동일한process또는 별도의process에서 실행될 수 있습니다.Broadcast Receivers:
Broadcast Receiver는 애플리케이션이 네트워크 변경 또는 배터리 상태 업데이트와 같은 시스템 전반의 브로드캐스트 메시지를 수신하고 응답할 수 있도록 합니다. 앱이 실행 중이 아니더라도 트리거되어, 필요한 경우 Android 시스템이 해당process를 시작하게 합니다.Content Providers:
Content Provider는 공유 애플리케이션 데이터를 관리하여 앱이 중앙 집중식 데이터베이스에 데이터를 읽거나 쓸 수 있도록 합니다. 이는IPC를 가능하게 하여 다른 애플리케이션 간에 데이터를 공유하는 데 사용될 수 있으며, Android 시스템이process를 안전하고 효율적으로 관리하도록 요구합니다.
Android 프로세스와의 연결
이러한 구성요소들은 Android 시스템이 앱 사용량, 메모리 가용성 및 작업 우선순위에 따라 process를 관리하기 때문에 Android process와 연결됩니다. 구성요소가 트리거될 때(Activity를 열거나 브로드캐스트를 수신하는 등), Android는 앱의 process가 아직 실행 중이 아니라면 이를 시작할 수 있습니다. 각 구성요소는 manifest 파일의 android:process 속성을 사용하여 자체 process를 할당받을 수도 있어, 리소스 집약적인 작업에 더 많은 유연성을 제공합니다.
이는 Activities, Services, Broadcast Receivers, Content Providers라는 Android의 4대 핵심 구성요소가 Android OS에서 자체 전용 process를 가질 수 있다는 의미입니다. 이러한 4대 구성요소가 전용 process에서 실행되도록 구성될 수 있기 때문에, 다른 Android 구성요소에 비해 시스템 수준 기능을 얻게 되어 더 강력하고 독립적입니다. 이러한 설계는 백그라운드 실행, IPC 및 시스템 수준 상호 작용을 가능하게 하여 Android 앱이 복잡한 다중 process 작업을 효율적으로 처리할 수 있도록 보장합니다.
요약
Activities, Services, Broadcast Receivers, Content Providers는 필수 애플리케이션 기능, 사용자 상호 작용 및 앱 간 통신을 가능하게 하는 핵심 Android 구성요소입니다. Android의 process model과의 긴밀한 관계는 효율적인 process 관리, 최적의 리소스 활용 및 시스템 수준 작업 조정을 보장하여 Android 앱 개발의 기초가 됩니다.