본문 바로가기

CS/[Embedded]Embedded System Software

[Embedded] Android Application Components, Android Intents

andorid application components에 대해 알아보자.

 

크게 4가지 구성요소가 있다.

activity, service, broadcast receiver, content provider 가 있다.

 

Activity

activity는 화면에 뿌려주는 ui를 구성하는 역할을 한다.

안드로이드 앱은 화면에 UI를 표시하기 위해 최소 하나의 Activity를 가져야 하며, 앱 실행 시 지정된 Activity를 실행하여 사용자에게 UI를 표시하게 된다.

 

이런 activity는 AppCompactActivity라는 class를 상속받아 함수등을 재정의 하여 구성한다.

 

 

 

Service

사용자에게 인터페이스를 제공하지 않고 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소이다.

즉, ui 없이 background 로 돌아가는 것으로 thread와 비슷하다.

다른 application component가 service를 시작할 수 있고, 다른 앱으로 전환하여도 background에서 계속 실행된다.

activity가 주로 start, stop 하는 형태로 작동된다.

Service Manager 에 등록이 되어 있어야 하며 activity와 마찬가지로 기존에 있던 Service 클래스를 재정의 하여 사용한다.

 

Service의 종류로는 foreground service, background service, bind service가 있다.

 

 

Broadcast Receiver

주요 시스템 이벤트에 관심 있는 애플리케이션들에게 통지하기 위해 안드로이드 시스템에 의해서 사용된다. 외부에서 입력되는 것을 받을 수 있게 끔 하며 예를 들어, 헤드폰 연결이 되거나, 전원 충전이되거나 할 때 상태변화 등을 감지하는 것이다.

Content Providers

 

이들 모두 기본적인 class 가 있고, 이를 extend 해서 사용한다.

 

Android Intent

이 각각의 component 간의 통신을 맡고 있는 것이 바로 android intent이다. 

intent 사용 방법은

activity - startActivity()를 이용

service - startService()를 이용, bindService()를 이용

Broadcast receiver - sendBroadcast()를 이용

 

Intent의 통신 방법은 두가지 방법이 있다.

 

1. explicit intent

: specify the component

2. implicit intent

: doesn't specify the component

 

1. explicit intent

명시적 intent는 가장 많이 볼 수 있는 방법으로 앱의 화면전환을 하는 방법이다. 하나의 액티비티에서 다른 액티비티로의 화면 전환시 사용된다.

어떤 액티비티로 전환하는지 명시적으로 지정해주기 때문에 explicit intent 인 것이다.

 

2. implicit intent

암시적 인텐트는 Intent의 Action에 따라 해당하는 적합한 애플리케이션의 클래스를 호출한다. 이 때 단 하나가 아닌 여러개가 호출 될 수도 있습니다. 

어떤 클래스를 호출할지 명시하지 않기 때문에 implicit intent 이다.

 

AndroidManifest.xml

모든 app에 필요한 파일로 essential information을 가지고 있다. 필수 구성 요소로, 앱의 고유한 식별자인 패키지 이름, 필요한 권한, 구성요소의 정보가 포함되어 있다.

 

 4대 component는 해당 파일에 정의되어 있지 않으면 앱의 구성요소로 사용할 수 없게 된다. 

 

 

 

Android View and Layout

모든 android UI 요소는 View, Viewgroup objects 에 설계되어 있다,

View는 안드로이드 기본 화면을 구성하는 모든 기본 화면의 구성요소이다. 

view 중에서 눈에 보이는 것을 위젯이라고 하고 보이지 않는 것을 레이아웃이라고 부른다. 

레이아웃은 그 안에 다른 뷰들을 담아둘 수 있는데 레이아웃도 뷰를 상속하여 정의되었으므로 레이아웃 안에 레이아웃도 담을 수 있다.