-
[Android Studio] 안드로이드 개발 환경 구축하기 - Android Studio 사용방법 및 구조 이해하기개발 끄적끄적/Android 2020. 9. 22. 15:39반응형
저번 포스팅에 이어 Android Studio를 구성하는 기본 요소들이 어떤 역할을 하는지, Android Studio의 구조에 대해 심화된 내용으로 포스팅하겠습니다.
이전 포스팅에서 진행한 Android Studio를 켰을 때의 화면입니다.
이제 이를 구성하는 요소를 차례대로 자세히 짚어 보겠습니다.
1. app / manifests
manifests라는 Directory안에 있는 AndroidManifest.xml는 app 모듈의 매니페스트 파일입니다.
이 파일에는 안드로이드 시스템이 앱을 실행하기 위해 필요한 정보가 담겨있습니다. 이러한 필수 정보를 시스템에 제공하는 기능을 하는 것입니다.
간단히 말해서 안드로이드 프로젝트는 application 위에 activity가 실행되는 구조입니다. 이때 각 계층 (application, activity) 에 대한 설정을 정의하는 곳이라고 생각하시면 됩니다.
- 1 : 앱의 고유 식별자 역할을 하는 패키지 이름을 지정합니다.
- 2 : 시스템 기능을 사용하기 위해 필요한 권한(Permission) 설정합니다.
- 3: 앱에서 사용되는 테마 설정합니다.
- 4 : 액티비티, 서비스, 브로드캐스트, 리시버 등 앱을 이루는 구성 요소들의 클래스 이름을 지정하고 구성요소들이 실행될 수 있는 조건을 설정합니다.
2. app / java
app 모듈의 코드 파일이 있는 곳입니다.
MainActivity.kt는 액티비티의 동작을 제어하는 코드가 작성될 코틀린 파일입니다. 앞으로 앱을 제작하며 가장 많이 사용될 곳입니다.
MainActivity 클래스는 앱의 실행이 시작되는 코드(Launcher)로 여기에서 지정한 레이아웃이 앱의 맨 처음을 장식하게 됩니다. (물론, MainActivity가 아닌 다른 클래스를 런처로 지정할 수도 있습니다.)
3. app / res
resources의 준말로 하위 Directory는 기본적으로 drawable, layout, mipmap, value로 구성되어 있습니다.
- Drawable
앱에서 사용하는 이미지 리소스 & 도형과 이미지의 속성을 정의하는 xml 리소스 등이 포함됩니다.
- Layout
액티비티의 레이아웃을 정의한 xml 파일이 포함됩니다. 각 xml 파일에 추가한 UI 컴포넌트들이 앱의 화면을 구성합니다.
- Mipmap
런처 아이콘에 사용되는 이미지만을 위한 디렉토리입니다.
이 폴더에 이미지 자원을 넣으면 안드로이드는 mdpi, xhdpi, xxhdpi 등과 같은 단말(휴대폰 등 디바이스)의 밀도에 따라 적합한 이미지를 제공합니다.
기본적인 동작은 위의 drawable 폴더와 같지만 Mipmap 폴더는 런쳐 아이콘만을 위한 곳입니다. 그 이유는 런쳐 홈 때문입니다.
런쳐 앱은 홈 화면에 보이는 앱 아이콘의 크기와 갯수를 스스로 결정할 수 있습니다. 예를 들어 디바이스의 설정에 따라 가로로 4개 혹은 3개의 아이콘을 보여주는 것입니다. 이때, 아이콘 갯수가 많아질수록 아이콘의 크기가 작아지고, 반대로 아이콘 갯수가 적어지면 아이콘의 크기가 커질 것입니다.
이를 위해 mipmap이 상황 별 최적의 런처 아이콘 이미지를 제공하는 기능을 하는 것입니다.
- values
앱에서 사용되는 리소스 관련 상수를 정의한 파일들이 저장됩니다. ID를 이용해 각 파일 내의 리소스를 참조할 수 있습니다.
- colors.xml : 앱에서 사용되는 색의 값(16진수)을 정의합니다.
- strings.xml : 앱에서 사용되는 문자열을 정의합니다.
- styles.xml : 뷰나 윈도우의 모습을 위한 속성을 정의합니다.
기본으로 정의되어있는 colors.xml입니다. name="colorPrimary" 부분이 ID를 정의하는 곳이며, #6200EE 부분이 값입니다. 즉, colorPrimary로 #6200EE를 참조할 수 있는 것입니다.
4. Gradle Scripts
Gradle 빌드 시스템에서 앱을 컴파일 & 빌드 시 사용되는 파일입니다.
Gradle이란 빌드 배포 도구입니다. 안드로이드 스튜디오는 코드의 편집을 담당할 뿐, 어플리케이션의 빌드는 Gradle을 통해 수행됩니다.
※ 이전에는 라이브러리를 추가하기 위해선 jar 파일을 받아 설정해야 했지만 라이브러리들이 많아짐에 따라 자동화 도구가 필요해지게 되었고 maven, gradle 등의 라이브러리 관리 도구가 있는데 그 중 Gradle을 사용하는 것입니다.
1. build.gradle (Project: My_Application)
build.gradle 중 Project: My_Application은 다수의 모듈이 존재할 때 전체 모듈에 공통적으로 적용하는 부분을 설정하는 곳입니다.
buildscript {...}
Gradle의 외부 저장소와 의존성을 정의합니다. 이 정의는 프로젝트의 모든 모듈에 적용됩니다.
repositories {...}
의존관계에 있는 것들을 찾거나 다운로드 할 때 Gradle이 사용하는 저장소의 정보를 담고 있습니다.
dependencies {...}
프로젝트를 빌드하기 위해 Gradle이 필요로 하는 의존성에 대해 정의합니다.
allprojects {...}
프로젝트 내에 모든 모듈(써드 파티 플러그인 & 라이브러리 등)에서 필요로 하는 저장소나 의존성을 정의합니다.
모든 모듈에 해당되지 않는 경우 아래에서 설명할 모듈 단위의 build.gradle 파일에 정의되어야 합니다.
2. build.gradle (Module: app)
모듈의 빌드 방법이 정의된 빌드스크립트입니다. 빌드에 사용할 SDK버전, 어플리케이션 버전, 사용하는 라이브러리 등 다양한 항목을 정의합니다.
apply plugin:
안드로이드 및 코틀린 플러그인 사용을 gradle에 적용하는 것입니다. 이는 가장 위에 선언되어야 합니다.
android {...}
안드로이드와 관련된 빌드를 설정합니다.
compileSdkVersion
앱 컴파일 시 사용할 SDK 버전입니다.
defaultConfig {...}
AndroidManifest.xml에서 사용하는 설정들에 대해 동적인 옵션을 주고 싶을 때 이 블록에 정의합니다. minSdkVersion, versionCode 등이 해당됩니다.
buildTypes {...}
dev, beta, release 와 같은 빌드 타입 종류를 정의합니다.
dependencies {...}
라이브러리와 같은 의존성 추가 시 이곳에 정의합니다.
5. Android 뷰 / Project 뷰
기본 값으로 Android 뷰로 설정되어 있지만 자주 사용하는 뷰 중 하나가 Project 뷰입니다.
Project 뷰는 실제 디렉토리 계층 구조를 반영하여 전체 프로젝트를 보여줍니다. 좌측 상단의 Android 를 클릭해 설정할 수 있습니다.
위에서 설명한 주요 파일 & 폴더의 실제 디렉토리 상 위치를 알 수 있으며, Android 뷰에서 보여주지 않던 외부 라이브러리 같은 프로젝트의 파일 & 폴더를 확인할 수 있습니다.
반응형'개발 끄적끄적 > Android' 카테고리의 다른 글
[Android Studio] Kotlin의 람다 표현식, Member Reference을 이용해 코드의 가독성을 높혀보자 (0) 2020.09.28 [Android Studio] Kotlin 변수와 데이터 타입 알아보기 (0) 2020.09.25 [Android Studio] 안드로이드 개발 환경 구축하기 - Android Studio 설치 (0) 2020.09.18 [Android Studio] 간단한 정보 저장 - SharedPreferences 를 파헤쳐보자 (0) 2020.07.01 [Android Studio] Intent - 전화걸기, 메시지, 웹사이트, 맵 (0) 2020.06.29