Software/Android2015. 1. 29. 15:38

개발이든 이론공부든 모두 기본적인 용어, 개념을 알아야 대화가 통합니다. 프로그래밍의 기본적인 용어를 다루지는 않지만 안드로이드 개발중에 자주 사용하게 될 용어, 개념들을 다루겠습니다.


안드로이드 응용프로그램의 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
Posted by 십자성군
기타/문제해결기2015. 1. 29. 14:59

안드로이드를 개발하는 중에 AVD로 구동하다가 발생할 수 있는 에러입니다.


생성해놓은 AVD의 RAM을 512로 맞춰주시면 해결됩니다.

'기타 > 문제해결기' 카테고리의 다른 글

[Android]Noclassedeffounderror  (0) 2015.02.26
Android에서 에러가 발생했을 때.  (0) 2015.02.04
RS232통신중에 문자가 깨지거나 예상과는 다른값이 나올때  (0) 2015.01.06
관리자 권한  (0) 2013.09.06
포맷  (0) 2013.09.06
Posted by 십자성군
Software/Android2015. 1. 29. 13:45

이것저것 짜기전에 일단 돌아가는지 확인해 봅시다!


앱의 동작을 확인하려면 debugging을 하거나 run해야 합니다.

이를 AVD(Android Virtual Device)로 구동해 볼 수 있고, 실제 스마트폰으로 구동해 볼 수 있습니다.


우선 AVD를 설정해 봅시다.

ADT를 eclipse에 설치했다면 eclipse의 window 메뉴에 활성화 SDK업데이트나 AVD가 있겠지만 필자의 경우는 그렇지 않았기에

C:\Program Files\Android\android-sdk

에서 AVD Manager를 실행시켰습니다.


AVD Manager에서 가상머신을 추가한 예가 아래의 사진입니다.




그럼 우리가 만든 기본 프로젝트를 실행시켜 봅시다.

Run의 Run configuration 에서

Android Application을 더블클릭 하면 새로운 Run 환경이 생성됩니다. 대상 프로젝트를 선택할 수 있으며 Target메뉴에서 항상 실제 디바이스에서 실행할 것인지, 가상머신을 사용할 것인지 등을 선택할 수 있습니다.




위 사진에서와 같이 Device, VD를 선택할 수 있습니다. 다만, Device에서 실행하려면 개발자모드를 활성화 시켜놓고, 이를 위한 드라이버를 설치해야 합니다.




제대로 동작함을 확인할 수 있습니다.


'Software > Android' 카테고리의 다른 글

setContentView()  (0) 2015.01.29
짤막한 tip. 인수 생략  (0) 2015.01.29
용어  (0) 2015.01.29
안드로이드 새 프로젝트 만들기  (0) 2015.01.29
안드로이드 개발환경 구축  (0) 2015.01.27
Posted by 십자성군