Hello, Android!

01. 안드로이드 4대 구성요소 본문

Android

01. 안드로이드 4대 구성요소

lwndnjs93 2019. 3. 4. 22:15

안드로이드 어플리케이션은 크게 4가지 구성요소로 이루어져 있다

1. 액티비티 Activity

2. 서비스 Service

3. 방송 수신자 Broadcast Receiver

4. 콘텐트 프로바이더 Contents Provider




1. 액티비티 Activity


액티비티는 화면을 구성하는 컴포넌트이며 액티비티의 생명주기가 있어, 생명주기의 각 메소드를 이용하여

필요한 기능을 구현하게 되어 가장 많이 사용하게되는 컴포넌트이다.

화면을 구성하는 컴포넌트인 만큼 최소한 하나이상의 액티비티를 가지고 있어야 하며

한번에 두개의 액티비티를 동시에 보여줄수없다. 

하지만 프래그먼트 Fragment를 사용하여 화면을 분할하여 사용하는것은 가능하다.



안드로이드 프로젝트를 별도의 설정변경 없이 생성하게 되면 보인는 화면이다.

메인액티비티 라는 이름의 액티비티가 생성되었고, Activity클래스를 상속받은 모습을 볼수있다.



안드로이드 액티비티 생명주기


액티비티는 생명주기에 따른 메소드를 이용하여 기능을 구현한다고 하였는데, 위의 그림과 같은 순서의 흐름으로

각각의 메소드를 호출하게 된다.



2. 서비스 Service


서비스는 백그라운드에서 실행되는 컴포넌트로, 화면이 없다.

예를들어 화면과는 별도로 음악을 재생할수있고, 시간이 오래 걸리는 작업을 백그라운드에서 처리할 수 있다.

이러한 서비스는 프로세와 유사한 의미의 컴포넌트이다.

액티비티가 액티비티 클래스를 상속받은것 처럼 서비스는 서비스 클래스를 상속받아 사용하게 되며 서비스 또한 생명주기가 있다.





3. 방송 수신자 Broadcast Receiver


방송 수신자는 어플리케이션보다 더 넓은 범위의 알림 정보를 받고 처리한다.

예를들어 배터리 잔량, 문자, 위치정보 등의 정보가 알려지면 수신하는 역할을 한다.

방송 수신자를 사용했던 경험으로는 위경도값을 지정하여 반경 범위안에 들어가게 되면, 푸쉬알림으로

알림을 알려주는 기능을 테스트하기도 했다.

이러한 특성때문에 서비스와 마찬가지로 화면이 존재하지 않는다.


4. 콘텐트 프로바이더 Contents Provider


콘텐트 프로바이더는 저장된 데이터를 처리하는데 사용하는 컴포넌트다.

어플리케이션이 접근 가능한 곳이라면 어디든 저장이 가능하며, 쿼리를 이용하여 관리할수 있다.

또한 권한이 있다면 사용자의 연락처, 주소록과 같이 다른 어플리케이션의 데이터에 접근가능하다.


마지막으로 이러한 컴포넌트 사이에서 데이터를 주고받는 일을 해주는 인텐트Intet 가 있다.

인텐트는 각 컴포넌트 사이의 데이터를 주고받고, 다른 컴포넌트를 호출하고 실행을 한다.

앞서 설명한 액티비티는 어플리케이션 내에 최소한 하나는 존재해야 하지만, 한번에 하나만 보여줄수가 있다.

A화면에서의 작업이 끝난 뒤 B화면을 불러올때 인텐트를 이용하여 B화면(액티비티 컴포넌트)를 호출하여 실행을 한다.




'Android' 카테고리의 다른 글

안드로이드 shared preferences  (0) 2020.05.17
05. 인텐트, 뷰 in kotlin  (0) 2019.03.11
04. 뷰  (0) 2019.03.10
03. 인텐트 Intent  (0) 2019.03.07
02. 액티비티 Activity  (0) 2019.03.05