본문 바로가기
My Image
프로그래밍/Android

[Android] Android 4대 컴포넌트(Activity,Service,Broadcast Receiver,Content Provider)

by Lim-Ky 2017. 6. 12.
반응형

안드로이드를 구성하는 4대 컴포넌트(Activity,Service,Broadcast Receiver,Content Provider)에 대해서 알아보자.






1. 액티비티(Activity)


사용자에게 보여주는 UI화면을 구성하는 컴포넌트입니다. 웹측면에서는 HTML페이지와 같은 느낌이랄까 


여하튼 View와 VIewGroup를 가지고 사용자에게 UI를 제공합니다. 


하나의 어플리케이션에 반드시 최소 1개이상 액티비티가 존재해야합니다. 액티비티는 매니패스트에서 선언해줘야 합니다.




2. 서비스(Service)


서비스는 백그라운드 즉 사용자에게 보여지지 않는 뒷공간에서 실행되는 녀석입니다. 따라서 UI가 없습니다.


서비스는 프로세스와 같은 의미의 컴포넌트입니다. 항상 백그라운드에서 프로세스가 돌고 사용자에게 보여지지 않은 상태에서 뒤에서 여러가지 일들을 처리합니다. 


모든서비스는 Service클래스를 상속받아서 구현됩니다.


서비스 구현방식으론 StartService방식, BindService방식이 있습니다.


StartService방식은 한 프로세스안에서 컴포넌트 사이에서 유기적인 역할을함.


BindService방식은 여러프로세스 간에서 유기적인 역할을 함.



3. 방송 수신자(Broadcast receiver)


브로드캐스트 리시버는 안드로이드 단말기에서 발생하는 이벤트나/정보를 받고 처리하는 컴포넌트입니다. 예를들어 배터리 부족, wifi설정,


전화나 문자 수신등 안드로이드 단말기에서 발생하는 이벤트/정보를 알려주고 그에 맞는 상황에따라 처리를 합니다.


따라서 항상 수신받을 준비를 하고있습니다. 브로드캐스트 리시버역시 서비스와 마찬가지로 UI가 없습니다.


브로드캐스트는 2가지 방법( 정적, 동적 ) 으로 구현할 수 있습니다. 




4. 콘텐트 제공자(Content provider)


콘텐트 프로바이더는 어플리케이션 사이에서 data를 주고받을 수 있게 도와주는 컴포넌트입니다. 


또한 안드로이드에 내장되어있는 SQLite Database 에 접근해 data를 가져올 수도 있고, file data를 읽거나 쓰고, 다른 어플리케이션의 data를 쿼리하거나 변경이 가능합니다.


또 외부어플리케이션이 나의 어플리케이션 내에 있는 데이터베이스에 함부로 접근하지 못하게 할 수 있으면서도 내가 공유하고 공개하고 싶은 데이터만 공유할 수 있도록 도와주는 컴포넌트입니다.





+5. 인텐트(Intent)



인텐트는 앞서 말한 4개의 컴포넌트사이들을 오가면서 data를 주고받고 통신할 수 있도록 해주는 전달자같은 역할을 한다. 


예를들어 독립적인 액티비티들 사이에서 정보를 주고받을 수 있게 data를 옴겨주거나, 액티비티를 호출 할 수 있습니다. 


인텐트는 2가지 (명시적,암시적) 방법으로 사용할 수 있다.


명시적 인텐트 - 대상컴포넌트가 확실히 정해져 있는 경우


암시적 인텐트 - 대상컴포넌트가 확실히 정해져 있지 않으면서, 어떠한 타입과 액션을 하는지에 대한 특징으로만 

    추론해 컴포넌트간 통신을 가능케한다.




-참고사이트


http://ggodol.tistory.com/







반응형

댓글