앱 구성 요소에는 4가지 유형이 있습니다.
각 유형은 뚜렷한 목적을 수행하고 각자 수명 주기가 있어
구성 요소의 생성 및 소멸 방식을 정의합니다.
액티비티는 Application과 사용자를 이어주는 진입점
UI를 포함한 화면 하나를 말한다.
일반적으로, App 은 다수의 Activity 로 이루어져 있고 서로 연결되어 있다.
시스템은 새로운 액티비티를 시작하면 기존에 있던 액티비티를 백스택에 담고나서 새로운 액티비티가 사용자에게 보여진다.
백스택은 Last in First Out 메커니즘을 따르며, 사용자가 뒤로가기 버튼을 눌렀을 때, 스택의 최상위에 있는 (현재 화면에 나와있는) 액티비티를 제거하고 이전의 액티비티를 시작한다.
Activity 는 xml 파일 하나와 소스파일 하나로 구성된다.
2) 정기적인 백그라운드 service 는 사용자가 실행되고 있다고 직접 인식할 수 없는 작업으로, 시스템은 좀 더 자유롭게 프로세스를 관리할 수 있다.
Broadcast Receiver는 App에서 다양한 이벤트와 정보를 받으면 그에 맞는 반응을하는 컴포넌트이다.
Broadcasting 은 메세지를 여러 객체에 전달하는 방법을 의미하는데,
이렇게 전달되는 메세지를 Broadcast Receiver를 사용해서 받을 수 있다.
디바이스에서 발생하는 일 중에서 App 이 알아야하는 상황이 발생하면 알려준다.
Receiver를 통해 디바이스의 상황을 감지하고 수신한 메세지에 따라 작업을 수행한다.
안드로이드 App 에서는 시스템이나 다른 App 으로 Broadcast를 보내거나 받을 수 있다.
특정 이벤트가 발생했을 때 전송된다.
ex) 베터리가 충전되었을 때, 시스템은 충전이 완료되었다는 Broadcast 메세지를 발신하고 App은 수신한다.
앱에서 여러 개의 Broadcast 를 사용할 수 있지만, 너무 많을 경우 백그랑누드 작업이 계속 되어 메모리의 낭비가 발생할 수 있다.