상세 컨텐츠

본문 제목

안드로이드 프로그램 구조

개발/안드로이드 개발

by 똘똘이박사 2015. 9. 17. 14:17

본문

· 최초작성 : 2015. 09. 15.

· 최종수정 : 2015. 09. 17.

· 작성/수정내용 :

  - 안드로이드 프로그램 구조

    액티비티, 컨텐트 프로바이더, 인텐트, 서비스의 개념




시작하기에 앞서...


개발관련 업무에서 손을 놓은지 거의 10년.

잘 할 수 있을까... 이거...



# 안드로이드 프로그램 구조


안드로이드는 다른 어플리케이션 개발과는 다른 독특한 구조를 가지고 있다.

여러 책들을 봤는데 정말 쉽게 정의를 내려준 내용이 있어 인용해 본다.


  • 액티비티(Activity) : 애플리케이션에서 실행하는 고유한 하나의 태스크(task). 사용자로부터
                           입력을 받고 처리 결과를 화면에 보여주는 기능을 한다.
  • 서비스(Service) : 사용자와의 상호작용과는 상관없이 항상 백그라운드로 동작한다.
  • 인텐트(Intent) : 다른 액티비티를 호출하고 데이터를 전달하기 위한 역활을 한다.
  • 컨텐트 프로바이더(Content Provider) : 다른 애플리케이션에서도 데이터를 이용할 수 있도록
                                                   제공하는 기능이다.


- 출처 : '이게 진짜 Android 프로그래밍이다' 영진출판사 -


1. 액티비티(Activity)

간단히 말하면 액티비티는 우리가 보는 화면 자체를 말한다.

안드로이드는 태생적 특성인지 모바일에 특화 되어 있다.

즉 한손에 들고 사용 할 수 있는 작은 핸드폰과 같은 작은 단말기기에 사용되어 정보를 보여주고 입력을 받아야 한다. 

동시에 여러 화면을 띄워 줄 수는 없다는 것이다.

(최근 동시에 두개의 앱을 실행 시킬 수 있는 기술이 등장했지만, 이것과는 별개이다.)

한개의 애플리케이션 안에 여러개의 액티비티가 있을 수 있지만 동시에 여러 개가 동작하지 않고 반드시 한 가지 액티비티만 동작한다.


2. 서비스(Service)

액티비티는 시작이 되면 언젠가 화면에서 사라지며 종료가 된다. 하지만 서비스는 앱이 종료가 된 이후에도 계속 동작하고 있는 것을 말한다. 따라서 서비스는 액티비티를 반드시 필요로 하지는 않는다.

예를 들자면, MP3 플레이어 앱 같은 것이 서비스를 이용한 앱이다.


3. 인텐트(Intent)

인텐트는 기기 내부에서 특정 이벤트가 발생하였을때, 이 것을 각 애플리케이션에 알려주는 역활을 한다. 

또한 다른 액티비티를 호출하여 실행시키는 역활을 한다.

예를 들어 문자가 도착하였을 경우, 작은 메시지 창을 띄워 내용을 알리는 것과 같다. 그리고 그 창을 클릭함으로써 문자메시지 앱을 실행시킬 수 있다.


4. 컨텐트 프로바이더(Content Provider)

컨텐츠 프로바이더는 여러 앱들의 데이터 공유를 위한 인터페이스를 제공하는 것이다.

예를 들어 주소록에 저장되어 있는 데이터를 기반으로 카카오톡의 친구가 자동으로 등록되어 있는 것과 같은 원리이다.



각각의 구성요소 만으로도 한 강좌를 만들기 충분한거 같다.

특히 액티비티쪽은 내용이 너무 방대한거 같아 다음에 기회가 될때 따로 정리를 하는 것이 좋을것 같다.



반응형

관련글 더보기