이클립스 안드로이드 프로젝트 구성요소
▣ 이클립스 안드로이드 프로젝트 구성 요소 |
● 프로젝트를 생성하면 기본적으로 만들어지는 소스들이 어떠한 형태로 만들어지며, 어떤 기능들을 하지는지 살펴보도록 하겠습니다. 먼저 다음과 같이 이름이 "AAA"인 프로젝트를 하나 생성했습니다.
위의 그림은 이름을 "AAA"라고 한 프로젝트를 생성하면 기본적으로 나타나는 화면입니다. 왼쪽의 Package Explorer 창을 먼저 살펴보면 "AAA"는 프로젝트 이름이고, 그 밑으로 com.example.aaa라는 패키지 이름과 MainActivity.java 라는 액티비티 파일이 보이네요. 그리고 기본적인 화면 디자인을 담당하는 activity_main.xml이라는 파일이 만들어지고 R.layout에 등록이 되어서 화면에 출력이 되게 됩니다. 액티비티에서 R.layout.activity_main이라고 호출하여 화면에 출력되는 형태입니다.
● 주요 구성요소들
먼저 "src" 폴더를 살펴보겠습니다. 여기에는 애플리케이션의 화면을 출력하는 자바 소스가 들어있는 폴더입니다. 어플은 인트로 화면, 메인화면 등....여러개의 화면으로 구성되어 있잖아요. 이런 화면을 이루는 단위가 액티비티인데, 여러개의 화면이 있는 프로젝트라면 여기에 액티비티 파일이 여러개가 있겠죠.
● 기본 Activity.java파일을 살펴보겠습니다.
그림과 같이 MainActivity.java 파일이 정의하고있는 클래스가 사용할 패키지 이름이 있습니다. 다음으로 이 클래스에서 사용할 외부 클래스들이 import 합니다. Activity클래스는 화면을 구성하는 클래스이고 Bundle는 문자를 맵핑하는 기능을 가지고 있는 클래스 입니다.
"public class MainActivity extends Activity{ " 라인은 화면을 출력해주는 시작 파일이라고 할 수 있는데요. 액티비티 클래스를 상속받아서(extends) 만들어졌으므로 Activity의 모든 속성과 메서드를 사용할 수 있습니다. onCreate()가 실행이 되고 setContentVIew()메서드에서"R.layout.activity_main"을 화면에 출력하도록 구성이 되어 있습니다.
● 다음으로 화면을 구성하는 요소들이 들어있는 폴더가 "res"폴더 인데요. 여기에는 화면의 레이아웃을 보관하는 "laytou"과 이미지들을 보관하는 "drawable", 그리고 값요소들을 정의하는 "values"등의 폴더들이 포함되어 있습니다.
● 실질적으로 화면에 나타나는 activity_main.xml은 다음과 같은 형태로 구성되어 있습니다.
●기본적으로 'RelativeLayout'에 'TextView'가 하나 들어가고 "Hello world!"라는 글자가 출력되도록 되어있네요. 처음 프로젝트를 만들고 실행을 시켜보면 이 화면이 출력이 됩니다. xml 소스 코드는 다음과 같이 정의되어 있습니다.
● 전체 레이아웃은 RelativieLayout으로 구성되어 있고, xmls(xml namespace)는 "android"를 사용하고 , 그 옆으 있는 주소에서 "Android"를 정의하고 있다는 의미입니다. 가로와 세로폭은 화면에 꽉 차도록 설정되어 있습니다. 텍스트뷰의 가로폭과 높이는 글자 크기만큼으로 하고, 내용은(android:text) "hello_world"라는 문자열"@String"을 사용합니다. 이 문자열은 다음에서 살펴볼 "res/values/string.xml"에서 정의하고 있습니다.
위와 같이 string.xml 파일의 내용을 보면 'hello_world'에 대한 값으로 "Hello world"를 정의하고 있는걸 볼 수 있습니다.
● 다음으로 "gen"폴더를 살펴보겠습니다.
● 이 "gen"폴더는 파일의 첫번째 라인에 주석처리 되어있는 부분에 보는것과 같이 자동으로 생성되는 자바파일 입니다.(AUTO-GENERATED FILE.) 이 파일에서는 프로젝트에서 사용하는 객체들의 고유번호를 정의하고 있다고 생각하면 됩니다. 그리고 모든 객체들이 "static final"로 정의 되어 있어서 어느 클래스에서든 선언할 필요없이 바로 접근해서 사용할 수 있습니다. 액티비티 클래스에서 (R.layout.activity_main) 사용했듯이 모든 클래스에서 접근해서 사용할 수 있습니다.
● 마지막으로 Android API 를 살펴보겠습니다.
● 이것은 프로젝트를 생성할때 정의한 "Target Build"에서 정의한 것입니다. 하지만 개발을 하다보면 변경해야 되는 경우도 있는데요. 다음과 같이 변경 해주면 됩니다.
● 그림과 같이 프로젝트를 선택하고 마우스 우클릭해서 "properties"를 선택하고, "Android"를 선택하면다음과 같이 "Project BuildTarget"을 변경할 수 있는 창이 나타납니다.
▣ "Hello world" 프로젝트를 샘플삼아서 주요 구성 요소들을 살펴봤습니다.