개발이든 이론공부든 모두 기본적인 용어, 개념을 알아야 대화가 통합니다. 프로그래밍의 기본적인 용어를 다루지는 않지만 안드로이드 개발중에 자주 사용하게 될 용어, 개념들을 다루겠습니다.
안드로이드 응용프로그램의 4가지 주요 구성요소
Activity(액티비티)
사용자 인터페이스를 구성하는 기본단위입니다.
우리가 보는 '화면 하나'가 액티비티인데, 하나의 액티비티가 스크롤이나, 레이아웃, 뷰 등으로 구성됩니다.
우리가 만드는 응용프로그램은 하나 이상의 액티비티를 가지게 되며 이 액티비티 사이들 넘나들게 됩니다.
Service(서비스)
UI없이 백그라운드에서 무한히 실행되는 컴포넌트라고 합니다. 미디어 플레이어, 네트워크 감시 등 UI가 없지만 '사용자의 명령을 받아들일 수 있는 액티비티'와 연결해서 사용됩니다.
Content Provider(콘텐츠 제공자): CP
안드로이드의 보안에 의해, 다른 프로그램의 데이터에 함부로 엑세스 하지 못합니다. 이러한 데이터 공유를 위한 합법적인 장치가 CP입니다.(데이터베이스 등)
Broadcast Receiver(방송수신자): BR
배터리 방전, 네트워크 전송 완료 등의 신호를 받습니다. 즉, 시스템에서 전달되는 방송을 대기하고 수신합니다.
방송 수신 시 이를 해석하고 적절한 액티비티나 서비스를 띄웁니다.
-----------------
MainActivity : 메인 액티비티의 소스 파일입니다. 앱을 시동했을 때 기동하는 중심이 되는 액티비티 입니다.
R.java : 응용프로그램 내의 각종 개체에 접근하기 위한 ID를 정의합니다. 예를들어 액티비티 내의 String, 버튼 등은 각자의 ID를 가지고 있습니다. 개발자가 편집할 일은 없습니다.
Library, lib 폴더 : 안드로이드 기본 라이브러리입니다.
bin : 컴파일의 중간 결과 파일이 저장됩니다.
asset : 비디오, 오디오 등의 리소스가 들어가는 폴더입니다.
drawable : 이미지 파일이 저장됩니다. l, m, x등 해상도별로 각각 제공됩니다.
layout/activity_main.xml : 레이아웃을 정의합니다. 즉, 버튼, 배경, 글 등을 배치하여 디자인 합니다.
menu/activity_main.xml : 메뉴를 정의합니다.
values/string.xml : 앱상에서 배치되는 문자열을 정의합니다.
AndroidManifest.xml : 프로젝트의 버전, 이름, 구성 등의 정보를 지닙니다.(최소 타겟 버전 등)
<액티비티, 뷰, 레이아웃>
Activity(액티비티)
앞에서 언급했지만 다시 언급합니다.
사용자 인터페이스를 구성하는 기본단위입니다.
우리가 보는 '화면 하나'가 액티비티인데, 하나의 액티비티가 스크롤이나, 레이아웃, 뷰 등으로 구성됩니다.
우리가 만드는 응용프로그램은 하나 이상의 액티비티를 가지게 되며 이 액티비티 사이들 넘나들게 됩니다.
View(뷰)
앞서 언급했듯이 액티비티는 화면 하나를 표현합니다. 이 설명에서 약간 오해가 생길 수 있는데, 우리 눈에 보이는 것은 액티비티가 아니라 액티비티에 포함되어 있는 '뷰' 입니다. 뷰 여러 개가 모여서 하나의 액티비티를 이루며 결국 우리들이 보는것은 뷰들의 집합인 것입니다. 그리고 액티비티가 여럿 모여서 하나의 응용 프로그램이 됩니다.
대략 아래와 같은 느낌입니다.
실제로 우리 눈에 보이는것은 액티비티 안의 뷰 인겁니다.
뷰는 크게 위젯과 뷰그룹으로 분류됩니다.
위젯
: 사용자 인터페이스를 구성하는, 직접적으로 보이는 요소입니다. 버튼, 텍스트 등을 위젯이라고 부르며 사용자에게 정보를 보여주고 명령을 받을 수 있으므로 컨트롤이라고도 합니다.
뷰그룹
: 위젯과는 달리 직접적으로 보이지는 않습니다. 여러가지 연관성 있는 뷰들을 유기적으로 결합하여 서비스를 제공하는 뷰의 집합으로 이들을 레이아웃이라고 합니다.
Layout(레이아웃)
앞서 설명했듯이 ViewGroup으로부터 파생되는 클래스로, 다른 뷰를 차일드로 포함합니다.
버튼, 텍스트 등의 기본 위젯을 모아서 하나의 레이아웃을 구성할 수 있으며 레이아웃이 여러 개 모여서 하나의 액티비티 화면이 완성됩니다.
'Software > Android' 카테고리의 다른 글
setContentView() (0) | 2015.01.29 |
---|---|
짤막한 tip. 인수 생략 (0) | 2015.01.29 |
일단 한번 돌려보기 (0) | 2015.01.29 |
안드로이드 새 프로젝트 만들기 (0) | 2015.01.29 |
안드로이드 개발환경 구축 (0) | 2015.01.27 |