안드로이드 기초 : 프로젝트 생성과 구동
지난 포스트에서 개발환경 설정에 대해 알아보았다.
포스트에선 프로젝트를 만들고 빌드를 해보겠다.
어느 플랫폼, 언어를 배울 때 처음 해야 하는 것은 Hello! World! 이다..;;
안드로이드 에뮬레이터에서 Hello! Android!라는 텍스트 문자열을 출력하는 애플리케이션을 만들어 보겠다.
- Eclipse를 실행한다.
- 프로젝트를
방법은 File->New->Project… 순으로
선택하거나,
Eclipse 오른쪽 Package Explorer에서 마우스를 클릭하여 New->Project…를 선택한다.
- New
창이 나타나면 Android Project를 선택하고 Next 버튼을 클릭한다.

- New Android Project 창에 아래 화면과 같이 입력하고 Finish
클릭하여 프로젝트를
생성한다.
name : HelloAndroid
Application name : Android
Package name : com.example.helloandroid
Activity : HelloAndroid
Build Target : 2.1 API 7
※ 항목 설명
Project name : 이클립스 프로젝트 이름
name : 안드로이드에서 표시되는 이름
Package name : 작성하는 구분되는 공간의 이름
Create Activity : 향후 다시 정리하겠지만 단위라고 정의
Build Target : SDK 버전 선택
- 프로젝트가 생성되고 Package Explorer에서 그
살펴보면 아래 화면과 같다.
src : 소스 파일 디렉토리
gen 안드로이드 SDK에서 만든 자동 생성파일 디렉토리
Android 2.1 : 라이브러리
assets : 세이브 데이터 저장 시 사용
: 이미지, 문자열, 레이아웃 등 리소스 디렉토리
AndroidManifest.xml : 시 필요한 정보 ( 필수 요소 )
- 프로젝트가 다 만들어졌다. 새로 만든 프로젝트를 그대로
하면 어떻게 될까?
바로 실행 해 보겠다. Run->Run 을 선택하고 Run as 다이얼로그에서 Android Application을 선택한다.
- 저번 포스트에서 만든 AVD가 제대로 설정 됐다면 에뮬레이터가 아래화면과 같이
것이다.
만약, AVD의 Platform 버전이 프로젝트 생성 시 Build 설정한 버전보다 낮다면
에러 메시지와 함께 AVD를 새로 만들거나 메시지가 나온다.

- 에뮬레이터의 구동이 끝나면 프로젝트를
기본적으로 구성되어 있는
"Hello World, HelloAndroid!" 문자열을 만날 수
프로젝트를 생성하고 구동해서 Wolrd까지 보았다.
이제 구동되는 순서를 말로 설명해보겠다.
설명 시 나오는 Activity 및 intent-filter 등 개념적인 용어들은 아직
않은 관계로
차후에 다시 정리하도록 하겠다.
- 프로젝트를 빌드를 하게 되면 "프로젝트디렉토리/bin"의 위치에 apk 파일을
생성한다.
apk파일은 소스를 빌드하고 그 산출물을 zip압축으로 패키지화 한 것이다.
zip압축처럼 압축프로그램으로 압축이 풀린다.) - 에뮬레이터가 구동되고 빌드 할 때
둔 apk파일을 에뮬레이터로 업로드 하고
에뮬레이터에 설치한다. - 에뮬레이터에 apk파일이 설치가 나면 AndroidManifest.xml 파일을 찾는다.
- AndroidManifest.xml에 등록되어 있는 Activity중
action을 가진
Activity 를 찾는다.
아래 코드는 AndroidManifest.xml의 내용이다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloandroid" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloAndroid" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="7" /> </manifest>
이 예제에서는 Activity가 하나 밖에 없지만 .HelloAndroid 이름을 가진 Activity안에
MAIN action을 가지고 있다. - MAIN action을
있는 HelloAndroid Activity를 호출한다.
처음 프로젝트 생성시 Create Activity HelloAndroid라고 입력했었다.
그 결과 만들어진 HelloAndroid.java ( com.example.helloandroid.HelloAndroid )가
이름을 가진 Activity이다. - 아래는 HelloAndroid Activity의 코드 내용이다.
package com.example.helloandroid; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Activity가 호출되면 제일 먼저 onCreate 메소드가 호출된다.
onCreate 메소드에서 setContentView 메소드를 R.layout.main 이라는
인자로 호출하고 있다.
※ R 이라는 클래스는 안드로이드 SDK에서 각
소스에서 매칭 시키기 위하여 자동으로 생성된다. - 위 setContentView 메소드 호출 시 인자로 던져 준 R.layout.main main.xml을 가리킨다.
- 아래는 main.xml의 내용이다.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
Linerlayout 구성되어 있고 그 하위에 TextView를 가지고 있다.
TextView에서 android:text 값으로 "@string/hello" 가지고 있는데, 이 string/hello는
R.string.hello을 가리키고 또 R.string.hello는 hello을 가르킨다.
아래는 strings.xml의 내용이다.
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HelloAndroid!</string> <string name="app_name">Hello, Android</string> </resources>
TextView의 android:text 속성의 값은 "Hello World, HelloAndroid!" 인것이다.
app_name AndroidManifest에서 쓰이고 있는데, 이 역시 string/hello와 같다. - 6번에서 호출한
메소드는 곧 "Hello World, HelloAndroid!"라는
text속성을
가진 TextView로 View를 구성하는 하게된다. - 이렇게 하여 에뮬레이터에서 "Hello World, HelloAndroid!"라는 문자열을 보게
원래가 설명에는 젬병이고 글 쓰는 지금도
생소한 용어에 대한 개념 정리가 안되어
제대로 설명이 된
같진 않다.
설명을 적다보니 개념 정리가 시급할 같다.
PS. 혹, 위에 나열해놓은 설명 중에 부분이 있다면 알려주시기 바랍니다.











댓글을 남겨주세요
설명 잘보고 갑니다.~