hmk run dev

안드로이드 어플리케이션의 네 가지 기본요소 본문

android

안드로이드 어플리케이션의 네 가지 기본요소

hmk run dev 2022. 2. 12. 09:18

Activit

- 앱이 실행되면 전체 화면에 앱의 UI를 띄워줌

- 사용자와 상호작용하며 이벤트 처리

- 새로운 UI를 화면에 표시

 

기본적으로 MainActitvity가 앱 실행 시 최초로 보이는 화면을 담당한다.

 

Service

앱의 백그라운드에서 동작하는 작업을 수행하며 서비스를 실행한 앱을 다른 앱으로 전환하더라도 서비스에서 시작한 작업은 백그라운드에서 계속 실행 된다.

 

서비스는 크게 3가지로 나눌 수 있는데

 

- 포그라운드 서비스 : 알침창에 서비스가 실행 중임을 표시해준다. 시스템에 의해서 강제로 종료되지 않음 

- 백그라운드 서비스 : 사용자에게 보이지 않는 백그라운드에서 작업을 수행하며. 시스템의 리소스가 부족할 경우 강제 종료될 수 있음

- 바인드 서비스 : 서비스와 서비스를 호출하는 앱 구송 요소가 서버&클라이언트와 같은 형태로 상호작용한다.

따라서 여 러프 로세스에서 같은 서비스에 바인딩하여 작업을 수행할 수 있다. 

 

간단한 서비스의 생명주기

1. startService()를 통해 최초 서비스 실행 시 onCreate()가 호출됨

2. onStartCommand()가 호출된다.

3. 서비스를 종료하기 위해서 stopService()를 실행하거나 서비스 자체에서 stopSelf를 실행하면 된다.

onDestroy()가 호출되어 서비스가 종료됨

 

주요 함수

startService : 서비스 실행

onCreate() : 서비스가 최초 생성될 때 한 번 호출됨

onStartCommand() : 앱의 다른 구성 요소에서 서비스를 실행하면 호출됨 이 함수가 호출되면 서비스가 시작되며 백그라운드에서 작업을 수행함

onDestroy() : 서비스가 소멸될 때 호출된다.

stopSelf() : 서비스가 스스로 중단함.

stopService() : 다른 구성 요소가 서비스를 중단한다. 

 

Broadcast Receiver

전화, 혹은 문자 등 어떤 행위가 왔다는 알림을 받고 방송?을 해주는 기능이다.

이 방송은 Intent를 통해 발송하게 되고 이렇게 발송된 방송은 Broadcast Receiver객체가 수신을 하게 된다.

 

미리 정의된 방송

안드로이드 기기 내부에는 각 상황에 따라 미리 정의된 발송을 하며, 해당 방송을 잘 수신하여 적절한 처 리르 할 수 있다. 안드로이드에서 지정한 표준 브로드캐스트 액션은 다음과 같습니다. (너무 많아서 생략)

 

ACTION_TIME_TICK

ACTION_TIME_CHANGE

ACTION_TIMEZONE_CHANGED

ACTION_PACKAGE_ADDED

ACTION_PACKAGE_CHANGED

ACTION_UID_REMOVED....

 

이름도 직관적이어서 쓰기에 매우 편리합니다~!

 

여기서 주의해야 할 점은 안드로이드 버전이 오레오 이상부터는 앱이 실행 중이 아닐 때는 브로드캐스트 동작을 수행하지 않습니다. 이전 버전들을 앱이 꺼져도 정상적으로 브로드캐스트가 수행되었지만, 리소스, 배터리 소모 등의 이유로 기능이 제한되었습니다.

 

Content Provider

앱이 데이터를 다른 앱과 공유하는 것을 도와줍니다. 

만약 내 앱에 ContentProvider를 구현했다면 다른 앱들은 ContentResolver를 통해 내 앱에 구현된 ContentProvider에 접근할 수 있습니다.

 

Content Provider는 데이터베이스와 유사하게 QUERY, INSERT, UPDATE, DELETE 등의 API를 제공합니다.

ContentProvider는 다른 앱과 데이터를 공유하기 위한 인터페이스라고 생각할 수 있습니다.

 

 

Service부분 출처

https://brunch.co.kr/@mystoryg/93

 

안드로이드 서비스(Service)

4대 컴포넌트 | 안드로이드 서비스 서비스는 백그라운드에서 동작하는 작업을 수행한다. 따라서 서비스를 실행한 앱을 다른 앱으로 전환하더라도 서비스에서 시작한 작업은 백그라운드에서 계

brunch.co.kr

 

'android' 카테고리의 다른 글

안드로이드 INTENT란?  (0) 2022.02.12
앱과 Firebase  (0) 2022.02.06
RecycleView  (0) 2022.02.06
안드로이드 Activity 라이프 사이클  (0) 2022.02.06
안드로이드 데이터 관리 ROOM  (0) 2022.02.06
Comments