페이지

2013년 6월 8일 토요일

프로젝트 구조 탐색하기

안드로이드 프로젝트는 본래 Java 프로젝트이고 그래서 이것은 Java 프로젝트에서 보이는 전통적인 많은 폴더들을 공유한다. 좀 더 알아보자.


1. Project View 열기



기본적으로 project view는 좌측 끝에 접혀있다. 이것과 관련된 모든 파일의 뷰를 열기 위해서는 Project 탭 (그림에서처럼)을 클릭하거나 Alt + 1 키를 누른다.


Project View를 열면 안드로이드 프로젝트의 전형적인 구조가 나타난다: 이것은 대부분의 Java 프로젝트와 유사하다.



2. 코드와 관련된 폴더 엿보기

소스 코드(액티비티와 다른 헬퍼 클래스들)는 src 폴더 아래에 위치한다; 리소스는 res 폴더 아래에 분류되어있다. 프로젝트의 일반 속성들은 루트 디렉토리의 AndroidManifest.xml에서 볼 수 있다. 이제 펼쳐보자.


.idea 폴더
이 폴더는 몇 개의 하위 폴더와 다양한 XML 파일을 가지고 있는데, 대부분 내부의 IntelliJ IDEA 정보와 공통 설정으로 채워져있다.
주: 일반적으로 이 폴더의 내용물과 상호 작용할 이유는 없다.


gen 폴더
이 폴더는 빌드를 처리하는 동안 안드로이드 플랫폼 툴에의해 자동으로 만들어지는 Java 소스 파일을 포함하고 있다. 그러나 이 폴더를 탐색해보면 몇 개의 .java 파일을 찾아볼 수 있는데 IntelliJ IDEA를 위해서 존재하는 파일이다. 특히, R.java와 Manifest.java 파일을 볼 수 있을 것이다. 전자는 생성되고 애플리케이션 리소스를 포함하는 최종 안드로이드 패키지로 컴파일된다. 후자는 애플리케이션에 대한 공개 manifest 정보를 포함한다. 이 정보는 궁극적으로 디바이스에 애플리케이션을 설치하는 동안 안드로이드 운영체제에 의해 사용된다.
주: 일반적으로 이 폴더의 내용물과 상호 작용할 이유는 없다.


src 폴더
애플리케이션을 구성하는 모든 소스 파일을 포함한다. src 폴더 아래에는 애플리케이션의 구조와 복잡성을 더 잘 반영하는 많은 단계의 하위 폴더를 가질 수 있다.


libs 폴더
이 폴더는 애플리케이션의 소스 파일이 참조하는 모든 클래스 라이브러리 (.jar 파일)을 포함할 것으로 예상된다. 디스크에서 이 폴더로 .jar 파일을 드래그-앤-드롭할 수 있다.


3. 리소스 폴더 엿보기

res 폴더는 이미지, 레이아웃 파일, 문자열, 메뉴, 그 외에 다른 유용한 보조 정보들과 같이 애플리케이션에 의해 사용되는 모든 외부 리소스를 포함한다. 이 정보는 종종 XML 파일로 표현된다. res 폴더 아래에는 다음의 서브 폴더들이 있다: drawable, layout, values, menu.


drawable 서브 폴더
drawable 폴더는 애플리케이션이 참조하는 모든 이미지를 포함한다. 이 폴더는 애플리케이션의 아이콘, 스플래시 화면 이미지 뿐만 아니라 사용자 인터페이스를 꾸미기 위해 사용되는 다른 이미지까지 포함하고 있다.


layout 서브 폴더
layout 폴더는 view의 구조를 정의하기 위해 사용되는  layout 파일을 포함한다.  UI 레이아웃 파일은 궁극적으로 IntelliJ IDEA에서 직접 편집하거나 또는 통합 그래픽 디자이너를 통해 편집할 수 있는 XML 파일이다.


values 서브 폴더
values 폴더는 문자열, 그래픽 스타일, 색상을 선언하는 XML 파일을 포함한다. 흔히, 이러한 XML 파일에 저장된 데이터는 이름/값의 짝 형태로 표현된다. 폴더에 리소스를 구분해두는 중요한 이유는 쉬운 로컬라이징을 위한 것이다.


menu 서브 폴더
menu 폴더는 애플리케이션에 의해 사용되는 메뉴 정의를 포함한다. 메뉴는 리스트의 아이템을 가리키는 고유 ID, values 폴더의 문자열 참조, drawable 폴더의 아이콘에 대한 참조를 포함한다.


assets 폴더
이 폴더는 리소스 저장을 목적으로 하는 옵션 폴더이다. res 폴더와의 중요한 차이는 assets에 있는 어떤 컨텐츠든지 res 폴더의 문자열, 이미지, 그 외 다른 콘텐츠들과는 다르게 안드로이드 프레임워크에 의해 사전 처리되지 않을 것이다. 리소스 사전 처리의 장점은 언어, OS 버전, 화면 크기 또는 화면 방향이 따른 가장 적합한 버전의 리소스를 제공하기 위해 근본적인 안드로이드 플랫폼을 사용 가능하게 하는 일반적인 ID로 리소스를 추상화한다는 것이다. assets의 컨텐츠는 있는 그대로 제공되고 개발자는 프로그래밍으로 그것을 읽어올 책임이 있다.


4. manifest 파일 엿보기

manifest 파일은 모든 안드로이드 애플리케이션에서 필요하다. manifest 파일은 AndroidManifest.xml이라는 이름의 XML 파일이어야 하고 프로젝트 루트 폴더에 위치해야 한다. manifest 파일은 안드로이드 운영체제에 애플리케이션에 대한 정보를 표현해준다. 이 정보는 애플리케이션을 실행하기 위해 운영체제에 필수적이다.


애플리케이션 속성

manifest 파일은 패키지 이름과 버전 뿐만 아니라 애플리케이션을 실행할 디바이스에서 요구되는 최소 Android SDK 버전을 정의한다. 이것은 지원되지 않는 디바이스에 애플리케이션이 설치되는 것을 방지한다. manifest 파일은 또한 사용자로부터 애플리케이션이 요구하는 권한을 가진 애플리케이션이 운영체제에 의해 실행되기 위한 진입점과 애플리케이션이 의존하는 시스템 구성 요소를 정의한다.


manifest를 변경하는 이유

개발자로서, 두 가지 중요한 이유때문에 manifest 파일을 수정할 필요가 있다: 코드 베이스에 새로운 액티비티를 추가할 때와 로컬 저장소, 센서, 인터넷 등에 대한 권한을 요구하는 기능에 접근할 필요가 있을 때.




댓글 없음:

댓글 쓰기