본문 바로가기

Android

android 프로젝트 분석...

728x90
반응형
이번에는 어제 보았던 Hello World 프로젝트를 만들고 나서 신경쓰지 않았던 생선된 프로젝트 폴더 및 파일들에 대해서 알아보기로 하겠습니다.

프로젝트를 생성하게 되면 다음과 같은 형식의 프로젝트 파일들이 생성되게 됩니다. 이 폴더와 파일들에는 무슨 의미가 있는지 알아보도록 하겠습니다.


HelloWorld : 패키지의 이름입니다(당연한걸 괜히 말하는거일지도...)
src/HelloWorld.java : 메인 소스 파일이고, 여기에 소스가 작성이 됩니다. 필요시에는 더 많은 소스 파일이 추가 될 수 있습니다.
gen/r.java : 프로젝트 내에서 각종 개체에 접근할 수 있는 아이디를 정의해 둡니다. 이녀석은 툴에서 자동으로 작성을 해주니 개발자가 직접 만질 일이 없습니다.
Android 2.1-update1 : 이것은 응용 프로그램이 참조하는 안드로이드 라이브러이입니다. 현재는 2.1 버전을 참조하고 있어 저렇게 나오게 되고요. 나중에 2.2 버전을 추가 한다면 2.2라고 나오게 될것입니다.
assets : 리소스 폴더로써 비디오, 오디오 파일 등이 들어가게 됩니다.
res/drawable : 이미지 파일이 들어가게 됩니다. hdpi/mdpi/ldpi 로 나뉘게 되는데 해상도 별로 각각 이미지를 넣어주면 해상도에 따라 이미지를 다르게 출력해 줍니다.
res/layout/main.xml : 개체의 레이아웃을 정의하여 프로그램의 모양을 디자인해줍니다.
res/values/strings.xml : 프로젝트에서 사용하는 문자열을 정의해줍니다.
default.properties : 이 파일은 프로젝트 빌드 타깃이 명시되어 있습니다. 현재 제가 만든건 7로 설정되어있죠.
AndroidManifest.xml : 프로젝트의 버전, 이름, 구성 등에 대한 정보들이 입력되어 있습니다.

이밖에도 컴파일을 하게 되면 bin폴더가 생성되어 apk파일과 class들이 생성되어집니다.

AndroidManifest.xml을 잠시 살펴보겠습니다. 파일을 열어보면 다음과 같은 화면이 보이는데요. 여기서 하단에 AndroidManifest.xml를 클릭해 보겠습니다.


클릭을 하면 아래와 같은 프로젝트에 대한 정보를 가진 xml이 보이게 됩니다. 나중에 액티비티를 추가하거나 기타 설정시 수정을 해줘야됩니다.


그리고 res/values/strings.xml를 파일을 열어보면 다음과 같이 보이게 됩니다. 이 파일에서 여러 문자열등을 설정할 수 있습니다. 물론 xml 형식으로 입력, 수정이 가능합니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloWorld!</string>
    <string name="app_name">HelloWorld</string>
</resources>

위에 같은 형식으로 문자열들이 입력되어 있죠. 둘중 아무곳에서나 입력을 하면 적용이 되어집니다.

또 기본적으로 만들어진 main.xml은 간단한 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>

LinearLayout 이라는 레이아웃안에 TextView를 두어 문자열을 출력하는 레이아웃을 볼 수 있습니다.

마지막으로 핵심 코드인 HelloWorld.java 코드를 보도록 하죠.
package exam.HelloWorld;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorld extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

현재는 위 코드에서 해주는 일은 Activity를 상속 받아 구현 해주고 main.xml를 화면에 뿌려주는 역할을 해줄 뿐입니다. main.xml에서 TextView에서 text에 @string/hello를 써서 strings.xml에 적혀 있는 hello 문자열을 가져와서 그것을 그대로 출력해주는 역을 하는 것이죠. 참 간단합니다.

어떻게 어느 정도 프로젝트 형태에 대해서 이해가 가셨는지 모르겠습니다. 한번 프로젝트를 생성하고 strings.xml의 문자열이나 TextView의 text에 다른 문자를 넣어보면서 좀더 공부하면 프로젝트 구성에 대해서는 이해가 갈 것이라고 생각입니다.

부족한 내용 읽어 주셔서 감사합니다 ^^
728x90
반응형