ANDROID

Application의 Component

룸훼훼 2011. 1. 20. 11:41
반응형
안드로이드의 중요한 특징은 하나의 app이 다은 app의 엘리먼트를 사용할수 있다는 점이다.
이러한 작업을 하기위해서는 , 이런 작업을 위해서는, 어떤 애플리케이션의 특정 영역이 필요해 질 때 시스템은 app프로세스를 시작할 수 있어야 하며, 그리고 그 영역에 대한 Java 오브젝트를 인스턴스화 할 수 있어야 한다. 그러므로 다른 대부분 시스템에서의 app과는 달리, 안드로이드는 app안의 모든 것들에 대한 하나의시작점을 가지지 않는다(예를 들어 main() 함수가 없음). 대신에, 안드로이드 app에는 시스템이 그것을 필요로 할 때 인스턴스화하고 실행할 수 있는 기본적인 컴포넌트들이 존재한다. 안드로이드 애플리케이션에는 네 가지 유형의 컴포넌트가 존재한다.


Activity - Service - BroadcastReceiver - ContentProvider


먼저 Activity는 그냥 한마디로 눈에보여지기 위한 사용자 인터페이스이다라고 생각하자.
액티비티는 그림을 그릴때 필요한 도화지라 생각하면 되겠다. 어떠한 app을 표현하기 위해서 틀이되는것이다.
액티비티는 베이스 클래스와 서브클래스로 구현되며 하나의 appdms 단지 한개의 액티비티로도 구성이 될수 있다.
(깊게 가려면 -_-;;;힘듬..)

다음은 Service다. 서비스는 액티비티와는 달리 눈에 보이지 않는 인터페이스 제공한다. 그리고 정해지지 않는 시간동안에
백그라운드(Background)에서 실행된다. 예를 들어 사용자가 음악을 재생하고 하고자 한다면 background에서 다른일을 하는동안 계속해서 동작하고 있을것 이다. 또한 network상의 data를 가져오거나 어떠한 일을 해서 그결과를 필요로 하는 Activity에게 제공할수 이다.
각각의 service는  Service Base class를 extend 한다.

BroadCast Receiver는 아무것도 하지 않는다. 단지 브로드캐스트 공지를 수신하고 응답한다. 많은 브로드캐스트는 시스템코드에서 발생한다. app에서도 브로드캐스트를 발생시킬수 있다. 예를들어 어떠한 데이터가 디바이스에 의해 다운로드되고 그것들이 사용가능하다는 것을 알게 해주는것 이다. 브로드캐스트리시버 역시 인터페이스를 보여주지 않는데 수신한 정보에 응답하는 액티비티를 시작하거나 알려주기 위한 노티피케이션 매니져를  사용할수 있다.

마지막 Content Provider는  다른 app에 유용한 특정 app의 데이터 집합을 만든다. 컨텐트 프로바이더는 자신이 제어하는 타입의 데이터를 다른 애플리케이션이 얻고 저장할 수 있도록 하게 하는 표준 메쏘드 집합을 구현하기 위해, ContentProvider 베이스 클래스를 확장extend한다. 하지만 애플리케이션은 이러한 메쏘드를 직접적으로 호출하지 않는다. 대신 애플리케이션은 ContentResolver오브젝트를 사용하여 그것의 메쏘드를 호출한다. 컨텐트 리졸버는 어떤 컨텐트 프로바이더와도 대화할 수 있으며, 그것과 관련된 임의의 프로세스 간 통신(IPC, interprocess communication)을 관리하기 위해 프로바이더와 협력한다

헉...헉...




반응형

'ANDROID' 카테고리의 다른 글

android-binder  (0) 2011.02.10
android-Thread  (0) 2011.02.10
ANDROID-content provider  (0) 2011.02.10
Android 시작 -  (0) 2011.01.20
RIL이란????  (0) 2011.01.10