반응형
Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Do Something IT

안드로이드 애플리케이션 구성요소 본문

Android

안드로이드 애플리케이션 구성요소

아낙시만더 2010. 6. 8. 10:25
반응형
개발자는 안드로이드 아키텍처에서 정의된 네 가지 기본적인 구성 요소 타입을 써서 안드로이드 애플리케이션을 만든다.

■ 액티비티
 액티비티는 오피스 애플리케이션 처럼 데스크탑에서 독립적으로 실행되는 애플리케이션과 비슷하다. 액티비티란 사용자나 운영체제가 시작해 필요한 동안만 실행한 후 닫는 실행코드다. 이 코드는 사용자와 상호작용을 담당하거나 질의나 인텐트를 통해 다른 액티비티 또는 서비스에 데이터나 서비스를 요청한다.
대부분의 안드로이드 실행 코드는 액티비티에 속한다. 액티비티는 주로 스크린과 연관이 있다. 각 액티비티는 사용자에게 하나의 스크린을 보여준다. 액티비티가 실행되고 있지 않다면 메모리 절약을 위해 안드로이드가 해당 액티비티를 강제로 종료할 수 있다.

■ 서비스
 서비스는 데스크탑이나 서버 운영체제에서의 서비스 프로세스나 디먼과 비슷하다. 서비스는 주로 백그라운드에서 돌아가는 실행코드로, 일단 실행되면 휴대폰이 꺼질 때까지 돌아간다. 서비스는 일반적으로 사용자 인터페이스가 없다. mp3같은 것을 예를 들수있는데. 사용자가 다른 프로그램을 실행시켜도 백그라운드에서 돌아가면서 음악을 틀어줘야한다.

■ 브로드캐스트 리시버와 인텐트 리시버
 다른 애플리케이션으로부터 온 요청을 처리하는 구성요소들이다. 브로드캐스트 리시버는 시스템 전체 이벤트를 처리한다. 이런 이벤트는 배터리 수명이 낮아졌을 때 처럼 안드로이드 자체에서 발생할 수도 있고 다른 프로그램에서도 발생할 수 있다. 반면 인텐트 리시버는 어떤 액티비티나 서비스가 그 기능을 다른 애플리 케이션에 제공하기위해 실행한다. 인텐트 리시버는 다른 프로그램의 데이터 요청이나 서비스 요청을 처리하는 작은 실행코드다. 요청하는 프로그램이 인텐트를 발행하면 안드로이드가 알아서 어떤 애플리케이션이 이를 받아 처리해야 할지 결정한다. 인텐트는 기존 애플리케이션에서 새로운 애플리케이션을 만들어내는 작업을 쉽게해주는 안드로이드의 주요 구성요소중 하나다. 애플리케이션이 다른 애플리케이션 또는 필요한 정보를 제공하는 서비스와 요청을 주고 받게 하려면 반드시 인텐트를 사용하여야한다.

■ 컴텐트 프로바이더
 다른 액티비티나 서비스로 정보를 공유하려면 컨텐트 프로바이더를 만들어야한다. 컨텐트 브로바이더는 다른 애플리케이션으로부터 데이터 요청을 처리하기위해 URI형식의 표준 인터페이스를 사용한다. 요청하는 애플리케이션은 실재로 어떤 컨텐트 프로바이더를 사용했는지 모를 수도 있다. 예를 들어 어떤 애플리케이션이 주소록 데이터에 대한 쿼리를 보낼 때, 그 쿼리를 다음과 같은 형식의 URI로 보낸다 .
content://contacts/people
이때 안드로이든 이런 형식의 URI를 처리할 수 있는 컨텐트 프로바이더라고 등록된 애플리케이션에 무엇이 있는지 찾아보고 적합한 애플리케이션에 그 요청을 보낸다. 만일 그 URI에 대해 여러개의 컨텐트 프로바이더가 등록 되어있다면 안드로이드는 사용자에게 그 중 어떤 컨텐트 프로바이더를 사용하고 싶은지 묻는다.

★ 정리
 액티비티실행하고 끝내는 프로그램을 말한다.
 서비스는 백그라운드에서 돌아가는 프로그램 즉 다른프로그램을 실행 시켜도 뒤에서 돌아가고 있는 프로그램을 말한다. ex)시계,mp3
브로드캐스트 리시버는 시스템 전체 이벤트를 처리하는것이다. 즉 배터리수명이 다하게 되면 전체적으로 프로그램을 정리한다.
인텐트 리시버는 어떤 액티비티나 서비스가 어떤 요청르하면 그에 해당하는 애플리케이션이 이를 받아 처리해야 할지 결정한다.
컨텐트 프로바이더는 다른 액티비티나 서비스로 정보를 공유할때 쓴다.
반응형

'Android' 카테고리의 다른 글

움직이는 네모  (0) 2010.06.21
기념일자 찾기  (0) 2010.06.17
안드로이드 구조  (0) 2010.06.08
fill_parent 와 wrap_content의 차이점  (0) 2010.06.04
안드로이드 퍼즐 만들기  (1) 2010.05.24
Comments