안드로이드 컴포넌트

웹 & 안드로이드/Android|2013. 10. 1. 10:14

1. Activity

안드로이드 프로그래밍을 하면 만나는 가장 기초적인 컴포넌트로서, 사용자 인터페이스의 기본 단위.

앱의 한 화면을 자체를 Activity 라 하고, 일반적으로 앱은 여러개의 Activity로 이뤄지며, 

또 하나의 Activity는 여러개의 View(ex: textview, imageview ...) 로 이뤄져 있다.



2. Service

Activity가 화면에 보이고 사용자에게 입출력을 제공한다면, Service의 경우 그와 반대로 화면에 출력되는 UI가 없으며, 백그라운드에서 길고 반복적인 작업을 하는데 사용된다. 예를 들자면 일반적인 음악재생 앱의 경우, 노래 재생은 계속하되 다른 앱을 실행한다던가 다른 작업을 할수 있다. 즉, 여기서는 노래가 Service로 실행중인것이다. 앞서 말했듯 Service는 UI 가 없기 때문에, 사용자와 통신하고자 한다면, 중간에 Activity를 삽입하고 이를 통해 중간 매개체 삼아 통신한다.  [ Service <-> Activity <-> 사용자 ]

재미있는 특징으로는 Service는 하나의 앱에 종속적이지 않기 때문에 하나의 Service로 다양한 앱들과 통신이 가능하다는 점.



3. Broadcast Receiver

안드로이드는 시스템의 기능/이벤트들이 발생하면, 이를 Broadcast 한다. 네트워크에서의 Broadcast 개념과 비슷하며, 안드로이드에서는 각 앱들로 이 신호를 전달하게 된다. 따라서 각 앱들에 이 신호를 받을수 있는 Broadcast Receiver 만 구현해 놓으면, 언제든지 각종  시스템 이벤트에 대비하고 이를 활용할수 있다. 여기서  시스템 이벤트들이란, 전화가 왔다!, 사진을 찍었다!, 배터리가 없다!, 문자가 왔다!, 등등..

시스템 이벤트만 언급 했지만 사실 하나의 일반 앱에서도 시스템에 정의된 신호가 아닌 임의 Broadcast 를 날릴수 있고, 이를 활용 가능하다.



4. Content Provider

앱 간에 데이터를 송수신하는데 사용된다. 일반적으로 SD카드나 외장메모리는 아무 앱이나 접근가능하지만, 앱 패키지 내의 폴더는 다른앱들이 접근 불가능하다. 이때, 해당 폴더의 데이터에 접근하고 이를 사용하고자 할때 사용하는 것이 Content Provider 이다. 대표적으로 카톡이 있겠다. 이놈은 설치만 하면 자동으로 주소록과 동기화하여 친구들을 마구 등록해 놓는다. 좋은 기능이기도 하지만 어찌보면 짜증나기도 하지만, 여하튼! 주소록 앱에서 Content Provider 를 제공하고, 이를 활용하여 카톡은 Content Resolver 라는 클래스를 통해 주소록 DB 에서 접근하여 정보를 가져오는 것이다.






출처 - http://manhdh.blog.me/120151839457

댓글()