Andriod Studio (Android Studio Koala Feature Drop | 2024.1.2) 버전에서 New 프로젝트를 생성하면, 아래와 같이 간단한 정보만 입력하면 기본 초기 프로젝트가 생성됩니다. 그리고 Gradle Build 스크립트 언어를 추천으로 되어 있는 Kotlin DSL로 선택을 하게되면 아래와 같이 기본 세팅 파일이 생성되는데, 간략하게 어떤 설정인지 정리를 하려고 합니다.
build.gradle.kts (Project 레벨)
plugins {
alias(libs.plugins.android.application) apply false
// 안드로이드 애플리케이션 플러그인을 참조
// apply false는 이 플러그인이 프로젝트 레벨에서는 적용되지 않고, 하위 모듈에서 필요할 때 적용
alias(libs.plugins.kotlin.android) apply false
// Kotlin 안드로이드 플러그인을 참조
}
// 버전 카탈로그(version catalogs)를 사용
// 'libs'라는 별칭을 통해 플러그인 버전을 중앙에서 관리
build.gradle.kts (Module 레벨)
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
// 안드로이드 애플리케이션과 Kotlin 안드로이드 플러그인을 적용
}
android {
namespace = "com.example.newProject"
compileSdk = 34
defaultConfig {
// 앱 ID, 최소/목표 SDK 버전, 버전 코드 및 이름 등을 정의
applicationId = "com.example.newProject
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}
buildTypes {
// 릴리스 빌드 설정 (현재 minify 비활성화)
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
// compileOptions: Java 호환성 버전 설정
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
// kotlinOptions: Kotlin 컴파일러 설정
jvmTarget = "1.8"
}
buildFeatures {
// buildFeatures: Jetpack Compose 사용 설정
compose = true
}
composeOptions {
// composeOptions: Compose 컴파일러 버전 설정
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
// packaging: 리소스 패키징 규칙 설정
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies {
// 라이브러리들을 정의 (버전 카탈로그를 사용하여 의존성 버전을 관리)
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
}
settings.gradle.kts
pluginManagement {
// 프로젝트에서 사용할 플러그인들의 저장소를 정의
repositories {
google {
content {
includeGroupByRegex("com\\.android.*")
includeGroupByRegex("com\\.google.*")
includeGroupByRegex("androidx.*")
// 안드로이드 관련 플러그인을 위한 Google의 저장
// 특정 그룹(com.android, com.google, androidx)만 포함하도록 설정
}
}
mavenCentral()
// 중앙 Maven 저장소
gradlePluginPortal()
// Gradle 플러그인 포털
}
}
dependencyResolutionManagement {
// 프로젝트의 의존성 해결 방식을 관리
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
// 개별 모듈에서 저장소를 정의하지 못하게 하고, 여기서 정의된 저장소만 사용하도록 강제
repositories {
google()
mavenCentral()
// 의존성을 가져올 저장소를 정의
}
}
rootProject.name = "newProject
include(":app")
// 'app' 모듈을 프로젝트에 포함
반응형
'[IT] Android' 카테고리의 다른 글
[안드로이드 스튜디오] Android DB(SQLite) 연동 및 Selecte 쿼리 조회 (1) | 2023.06.08 |
---|---|
[안드로이드 스튜디오] UI로 Git 사용 (Android Studio Git 설정 및 Github 연동) (0) | 2023.05.25 |
[안드로이드] ToggleButton On/Off 배경 및 배경 색상 변경 (0) | 2023.03.27 |
[Android Studio] 안드로이드 스튜디오 핸드폰 연결 (USB) (0) | 2022.09.14 |
[Flutter 설치] Flutter Doctor Issue - Windows 윈도우 OS (1) | 2022.06.13 |
댓글