본문 바로가기

Programming/Android

[Android] #4 Android Project 기본 구성

안드로이드 프로젝트를 생성하면 다음과 같이 구성된다.




AndroidManifest.xml

이 파일에는 어플리케이션의 각종 권한설정, Activity 설정, Intent-Filter에 대한 항목들이 포함되어 있다.
즉, 전반적인 설정을 담고 있는 파일이라 보면 된다. 어플리케이션 컴포넌트(Activity, service...)뿐 아니라 어플리케이션 이름, 사용하는 라이브러리 등에 대한 모든 정보들이 포함되어 있다.


<manifest> tag

레이아웃 파일과 유사하게 <manifest> 태그가 전체를 감싸는 구조, manifest tag 안에 application tag, uses-per mission tag 등이 들어간다. manifest tag의 속성으로는 사용할 네임스페이스를 지정해주는 xmlns:android 속성, 어플리케이션의 패키지명 및 버전등이 있다.









소스코드 (src폴더/gen폴더)

src폴더

일반 소스코드는 액티비티, 서비스, 컨텐츠 프로바이더 혹은 기타 어플리케이션 구성에 필요한 클래스들의 소스파일들과 패키지로 구성되어 있다. 프로젝트를 생성한 경우, 일반적으로 자동으로 생성된 액티비티의 소스코드가 포함된다. 


gen폴더 (자동생성 파일)

안드로이드 어플리케이션은 소스코드 뿐만 아니라 레이아웃, 그림, 문자열 등 여러 가지 리소스들로 구성된다.

소스 코드에서 리소스 파일에 접근하기 위해 이클립스 ADT 플러그인에서는 리소스에 변동이 있을 때마다 리소스의 주소를 업데이트하여 R.java

파일에 기록한다. 이러한 과정은 리소스가 추가/삭제 되거나 변경된 후 해당 리소스가 "저장"될 때 이루어 진다.

이러한 과정은 모두 자동으로 이루어지며, R.java 파일에는 리소스들의 주소가 담겨 있으므로 R.java 파일의 내용을 임으로 변경해서는 안된다.

R.java

R.java 파일에는 각 폴더 내에 들어있는 각종 객체(이미지, 레이아웃, 문자열 데이터)에 접근할 수 있는 포인터 주소가 저장되어 있다.

이 파일은 따로 사용자가 수정하면 안되며, 객체에 변동이 있을 때 자동으로 갱신되게 된다.

Example) R.java  
 

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class id {
        public static final int button=0x7f050000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
    }
}

위와 같이, 각 객체에 접근할 수 있는 주소 값들을 가지고 있다.


리소스 res 폴더 (drawable/layout/values)

그 하위 폴더로 drawable, layout, values 폴더가 있다. res 폴더는 어플리케이션에서 사용되는 각종 객체 및 레이아웃, 문자열 데이터가 저장되는 폴더이다. 이 중, layout 폴더를 보면 main.xml 파일이 있다. 이는 액티비티 내 각 객체들의 레이아웃을 지정해주는 파일이다.


drawable

어플리케이션에서 사용할 그림 파일들을 보관한다. 이때 그림 파일 이름은 모두 소문자 및 일부 한정된 특수문자로만 이루어져야 한다. 


layout

어플리케이션의 화면을 구성하는 레이아웃 파일들을 포함 


values

values 폴더에는 문자열, 배열 등 기타 어플리케이션에서 사용하는 여러가지 값들이 보관된다.


a
ssets 폴더

이 폴더에는 오디오 파일이나 애니메이션 파일이 들어가게 된다.

lib 폴더

lib 폴더는 외부 라이브러리나 자신이 추가한 라이브러리를 추가할 경우 사용된다.

방법은 lib폴더를 만든 후 lib폴더에 사용할 lib를 추가한 후 이클립스 Package Explorer에서 lib폴더 선택 후 우클릭 팝업메뉴에서

Build Path -> Configueer Build Path에서 Libraries 탭의 Add JARs...선택후 라이브러리를 추가한다.