본문 바로가기
개발(Development)/Android(안드로이드)

[안드로이드] 앱 프로젝트 구조

by 카레유 2021. 7. 10.

# 프로젝트란 ?

SW개발을 위해 필요한 소스코드, 리소스 및 데이터, 환경설정 파일 등을 통합적으로 관리하는 구조를 말한다.

보통 서버나 앱을 개발 할 때, 폴더를 하나 만들고 모든 코드와 파일을 넣어서 관리하는데 이 폴더를 프로젝트라고 볼 수 있다.


# 안드로이드 앱 프로젝트 구조

안드로이드 프로젝트는 소스코드(java/kotlin코드), 리소스(이미지 파일 등), 환경설정(manifest, Gradle Script)으로 구성된다.

앱 자체에 대한 내용은 app영역에 위치하며

1) 환경설정은 manifests 경로에, 2) 소스 코드는 java 경로에, 3) 이미지와 같은 리소스는 res 경로에서 관리된다.

 

빌드/버전 설정 및 라이브러리는 Gradle Scripts 영역에 위치하며

build.gradle 파일을 통해 관리 된다.

 

이를 그림으로 도식화하여 연결하면 다음과 같다.

* 참고: 실제 드라이브 상의 디렉터리/파일 경로와는 조금 다르다. Android Studio에서 개발에 필요한 파일만 정리하여 보여주는 것이다.


# 환경설정(manifests)

: 애플리케이션의 기본필수정보, 권한정보, Acitivity 정보 등을 관리한다.

: app > manifests > AndriodManifest.xml 파일을 말한다.

 

* 매니페스트에 대한 상세한 내용을 아래글 참고

[안드로이드] 매니페스트(Android Mainfests.xml) 개념과 구조


# 소스코드(java/kotlin)

: 앱의 동작을 구현하는 소스코드이다.

: app > java > 패키지 > *.java 혹은 *.kt 파일을 말한다.

* (androidTest), (test)가 뒤에 붙은 패키지들은 유닛 테스트 등을 위해 자동생성된 패키지이며, 실제 개발자가 구현하는 소스코드는 뒤에 아무것도 없는 패키지에 위치한 java/kotlin 파일이다.


# 리소스(res)

: 레이아웃, 이미지, 문자열 데이터 등의 정적 데이터/파일을 관리하는 영역이다.

- layout: 화면 UI 레이아웃 xml 파일

- minimap: 아이콘 이미지 파일

- drawable:  일반 이미지 파일

- values: 문자열, 컬러 등


# Gradle Scripts

: build.gradle 파일을 통해 프로젝트와 모듈별 설정 정보를 관리한다.

- 빌드 정보: android 항목을 통해 SDK/앱버전, 테스트, 빌드/컴파일 등을 관리

- 라이브러리: dependencies 항목을 통해 라이브러리 설치 관리

*settings.gradle 파일은 프로젝트에 추가된 모듈(app 등)들을 등록하여 관리한다.

 

Gradle Scripts 영역에 대한 자세한 내용은 아래 글 참고

[안드로이드] 그레이들 Gradle Scripts에 대한 정리


안드로이드 앱 프로젝트는 복잡해 보이지만,

사실상 아래의 3가지로 구성되어 있음을 알 수 있다.

 

1. 소스코드: java/kotlin

2. 리소스: 레이아웃/문자열(xml), 이미지(png) 등

3. 환경설정: manifest.xml, gradle Scripts(build.gradle)

 

댓글