안드로이드 구성 요소(APK 구성 요소)

 

 

안드로이드 구성 요소

 

■ 안드로이드 어플리케이션(APK) 필수 구성 요소

 

안드로이드 어플리케이션은 어플리케이션 매니페스트 파일에 의해 바인딩된 6가지 필수사항(액티비티(Activity), 서비스(Service), 콘텐츠 프로바이더(Contents Provider), UI, Intent, 브로드캐스트 리시버(BroadCast Receiver)으로 구성됨.

액티비티, 서비스, 브로드캐스트 리시버, 컨텐트 프로바이더를 묶어 컴포넌트라고 함

 

Activity(액티비티)
안드로이드의 클래스
구현될 때, 윈도우나 자바프레임처럼 사용자 인터페이스가 있는 단일 화면을 나타냄. 각 화면은 메뉴를 클릭하거나 버튼을 클릭하는 등과 같은 특정한 액션에 의해 전환되는데, 각 화면이 모두 액티비티.

모든 앱에는 처음 실행될 때 자동으로 기본적으로 실행되는 MainActivity가 있으며, 액티비티에서 수행되는 모든 작업은 콜백을 사용하여 수행됨

onCreate()
 - 액티비티가 처음 만들어질 때 호출되는 첫번째 콜백
onStart()
 - 액티비티가 사용자에게 표시될 때 호출됨
onResume()
 - 사용자가 어플과 상호 작용할 때 호출
onPause()
 - 정지된 액티비티는 사용자 입력을 수신하지 않음
 - 현재 액티비티가 일시 중지되고 다른 액티비티가 resume 될 때 호출됨
onStop()
 - 액티비티가 사용자에게 보여지지 않을 때 호출됨
onDestroy()
 - 액티비티가 소멸될 때 호출됨
onRestart()
 - 액티비티가 멈췄다가 다시 시작되기 바로 전에 호출됨

Service(서비스)
사용자와 상호 작용할 필요없이 장기 실행 작업을 수행하기 위해 백그라운드에서 실행되는 구성요소

다른 어플리케이션을 동작하면서 음악을 듣는 등 백그라운드에서 실행되는 것은 바로 이런 서비스의 기능
응용 프로그램이 파괴되어도 작동하며, 기본적으로 두 가지 상태를 가질 수 있음

Started
서비스는 활동과 같은 애플리케이션 구성요소가 startService()를 호출하여 서비스를 시작할 때 시작
서비스가 시작되면 서비스를 시작한 구성 요소가 소멸되더라도 백그라운드에서 무한정 실행 가능
Bind
서비스는 응용 프로그램 구성 요소가 bindService()를 호출하여 바인딩될 때 바인딩
바운드 서비스는 구성요소가 서비스와 상호 작용하고, 요청을 보내고, 결과를 얻으며, 프로세스 간 통신(IPC)을 통해 그렇게 할 수 있게 하는 클라이언트-서버 인터페이스를 제공함

서비스 기본 클래스는 다양한 콜백 메서드를 정의

onStartCommand()
  - 액티비티같은 다른 구성 요소가 startService()를 호출하여 서비스 시작을 요청할 때 이 메서드를 호출
onBind()
 - 다른 구성요소가 bindService()를 호출하여 서비스와 바인드하려고 할 때 시스템이 호출
onUnBind()
 - 모든 클라이언트가 서비스에 의해 게시된 특정 인터페이스로부터 연결이 끊겼을 때 시스템이 호출
onRebind()
 - 시스템은 Unbind()에서 모든 클라이언트의 연결이 끊겼음을 이전에 알린 후 서비스에 연결된 새 클라이언트가 있을 때 이 메서드를 호출
onCreate()
 - 시스템은 처음 서비스가 onStartCommand() 또는 onBind()를 사용하여 생성되었을 때 이 메서드를 호출
 - 이 호출은 설정될 때 한번 수행해야 한다
onDestroy()
 - 서비스가 더 이상 사용되지 않고 소멸될 때 호출

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

각 어플리케이션 사이에서 데이터를 공유하기 위한 인터페이스. 기본적으로 안드로이드는 샌드박스에서 동작하기 때문에, 시스템에 있는 다른 어플리케이션들끼리의 데이터 접근은 격리됨. 콘텐츠 프로바이더는 음악 파일, 사진 파일 등과 같이 용량이 큰 데이터들을 공유하는 데 적합.


Content Provider는 네 가지 기본 작업을 제공(CURD 원칙)
C(create) – 생성: 콘텐츠 제공자에서 데이터 생성을 위해 사용
R(read) – 읽기: 콘텐츠 제공자에 저장된 데이터를 읽음
U(update) – 업데이트: 콘텐츠 제공자의 기존 데이터를 편집할 수 있음
D(delete) – 삭제: Storage에 저장된 기존 데이터를 삭제

Broadcast Receiver(브로드캐스트 리시버)
브로드캐스트 리시버는 단순히 다른 애플리케이션이나 시스템 자체의 브로드캐스트 메시지에 응답함.

(ex)배터리 상태, 메일 알람)


특히, 이러한 메시지를 이벤트 또는 Intent라고 함.

 

예를 들어, 응용 프로그램은 일부 데이터가 장치에 다운로드됬고 사용할 수 있음을 다른 응용 프로그램에 알리기 위해 브로드캐스트를 시작함. 그리고 브로드캐스트 리시버는 이 통신을 인터셉트하고 적절한 액션을 시행함
 - intent.action.REBOOT
 - intent.action.DATE_CHANGED
 - intent.action.BOOT_COMPLETED

Intent
Android Intent 는 수행할 작업에 대한 추상적인 설명. startActivity 와 함께 사용하여 Activity를 시작하고,
broadcastIntent를 사용하여 관심있는 BroadcastReceiver 구성 요소에 보낼 수 있으며, startService(Intent) 또는 bindService(Intent, ServiceConnection, int)를 사용하여 백그라운드 서비스와 통신 가능
View
사용자와 Android 애플리케이션의 모든 상호 작용은 사용자 인터페이스(UI)를 통해 이루어짐
View 는 Android에서 UI(User Interface)의 기본 빌딩 블록
View는 android.view.View에서 클래스를 참조하며, 텍스트 뷰, 이미지 뷰, 버튼 등 같은 모든 GUI 구성 요소에 대한 슈퍼 클래스

 

댓글

Designed by JB FACTORY