안드로이드 애플리케이션은 크게 4가지 요소로 구성됩니다.

액티비티(Activity)

액티비티는 UI가 있는 단일 화면을 나타냅니다. 예를 들어 이메일 앱이라면 새 이메일 목록을 표시하는 액티비티가 하나 있고, 이메일을 작성하는 액티비티가 또 하나, 그리고 이메일을 읽는 데 쓰는 액티비티가 또 하나 있을 수 있습니다. 여러 액티비티가 함께 작동하여 해당 이메일 앱에서 짜임새 있는 사용자 환경을 형성하는 것은 사실이지만, 각자 서로와는 독립적인 형태입니다. 따라서, 다른 앱이 이와 같은 액티비티 중 어느 것이라도 하나만 시작할 수 있습니다(이메일 앱이 그렇게 하도록 허용하는 경우). 예를 들어, 카메라 앱이라면 이메일 앱 안의 액티비티를 시작하여 새 메일을 작성하도록 해서 사용자가 사진을 공유하도록 할 수 있습니다.
액티비티는 Activity의 서브클래스로 구현되며, 일반적으로 하위호환을 위해 AppCompatActivity의 서브클래스를 사용합니다.

액티비티의 생명주기

 

서비스 (Service)

서비스는 백그라운드에서 실행되는 구성 요소로, 오랫동안 실행되는 작업을 수행하거나 원격 프로세스를 위한 작업을 수행하는 것입니다. 서비스는 사용자 인터페이스를 제공하지 않습니다. 예를 들어 서비스는 사용자가 다른 앱에 있는 동안에 백그라운드에서 음악을 재생할 수도 있고, 아니면 사용자와 액티비티 사이의 상호작용을 차단하지 않고 네트워크를 가로질러 데이터를 가져올 수도 있습니다. 또 다른 구성 요소(예: 액티비티)가 서비스를 시작한 다음 실행되도록 두거나 자신에게 바인드하여 상호작용하도록 할 수도 있습니다.

서비스의 생명주기

브로드캐스트 수신기(Broadcast Receiver)

브로드캐스트 수신기는 시스템 범위의 브로드캐스트 알림에 응답하는 구성 요소를 말합니다. 대다수의 브로드캐스트는 시스템에서 시작합니다. 예를 들어, 화면이 꺼졌다거나 배터리 잔량이 부족하다거나, 사진을 캡처했다는 것을 알리는 브로드캐스트가 있습니다. 앱도 브로드캐스트를 시작합니다. 예를 들어, 기기에 몇 가지 데이터를 다운로드하여 다른 앱도 사용할 수 있다는 사실을 다른 여러 앱에게 알리는 것입니다. 브로드캐스트 수신기는 사용자 인터페이스를 표시하지 않지만, 상태 표시줄 알림을 생성하여 사용자에게 브로드캐스트 이벤트가 발생했다고 알릴 수 있습니다. 다만 브로드캐스트 수신기는 그저 다른 구성 요소로의 “게이트웨이”인 경우가 더 보편적이고, 극소량의 작업만 수행하도록 만들어진 경우가 많습니다. 예컨대 서비스를 시작하여 이벤트를 근거로 한 어떤 작업을 수행하도록 할 수 있습니다.

콘텐츠 프로바이더(Contents Provider)

콘텐츠 제공자는 공유된 앱 데이터 집합을 관리합니다. 데이터는 파일 시스템이나 SQLite 데이터베이스 또는 웹이나 기타 영구적인 저장소 위치 중 앱이 액세스할 수 있는 곳이라면 어디에든 저장할 수 있습니다. 다른 여러 앱은 콘텐츠 제공자를 통해 해당 데이터를 쿼리하거나, 심지어는 수정할 수도 있습니다(콘텐츠 제공자가 그렇게 하도록 허용하는 경우). 예를 들어, Android 시스템은 사용자의 연락처 정보를 관리하는 콘텐츠 제공자를 제공합니다. 따라서, 적절한 권한을 가진 앱이라면 어떤 것이든 해당 콘텐츠 제공자의 일부를 쿼리하여 특정한 사람에 대한 정보를 읽고 쓸 수 있습니다. 콘텐츠 제공자는 여러분의 앱에 전용이며 공유되지 않는 데이터를 읽고 쓰는 데에도 유용합니다. 

 

인텐트(Intent)

인텐트는 컴포넌트간의 메시지를 주고 받는 전달자 역할을 합니다. 인텐트를 통해 각 컴포넌트들을 호출, 실행 할 수 있습니다.
인텐트의 종류는 2가지가 있습니다.

명시적 인텐트 – 대상 컴포넌트가 확실한 경우. (패키지명을 포함한 클래스 풀네임) 

암시적 인텐트 – 대상 컴포넌트가 정해져있지만, 어떠한 타입과 액션으로 불특정 컴포넌트를 호출하는 방식. 

카테고리: 미분류

1개의 댓글

성빈 · 2023년 6월 27일 6:29 오후

아하! 이런 거였군요,, 정리 감사합니다.

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.