본문 바로가기
코딩일기/android studio

안드로이드 독학 20일 차 : Gradle 이란?

by 욱파이어니어 2021. 7. 6.
728x90
반응형

Gradle 이란??

우리가 개발한 코드를 모바일에서 실행할수 있도록 변환해주는 시스템이다.
그뿐만 아니라 다른 사람이 개발한 소스코드를 쉽게 가져와 사용할수 있게도 해준다.
따라서 안드로이드 스큐디오는 코드의 편집만 담당할뿐 막상 빌드를 하는곳은 Gradle을 통해서 수집이 된다.

 

이 밖에도 테스트, 배포 등 다양한 기능을 제공하고 있다.

빌드 시스템이 없다면 
다른 사람이 개발한 라이브러리를 직접 다운받고 lib 폴더를 만들어서 복사하고
복잡한 클래스 패스를 설정해줘야 한다.

 

이클립스로 본다면 maven과 같은 역할을 하는거라고 보면 된다.

 

자 그럼 gradle 파일안에 내용들을 분석해보자.

 

일단 gradle을 수정하고 싶을땐 

위 파일에서 수정을 해야한다.

따라서 위 파일을 들어가보면 아래와 같은 소스들이 나온다.

 

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29

    defaultConfig {
        applicationId "wook.co.coc"
        minSdkVersion 16
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation 'androidx.navigation:navigation-runtime:2.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'

    //recyclerview
    compile 'com.android.support:recyclerview-v7:28.0.0'


    //glide 사진을 인터넷으로부터 가져오게 해주는 라이브러리
    implementation 'com.github.bumptech.glide:glide:4.12.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

    //circle imageview
    implementation 'de.hdodenhof:circleimageview:3.1.0'
}

 

각각 부분에 대한 설명을 하자면 아래와 같다.

 

android{} : 안드로이드와 관련된 빌드 설정은 이곳 안에서 세팅

compileSdkVersion, buildToolsVersion : 
compileSdkVersion은 앱 컴파일시 사용할 SDK 버전 지정


※SDK(안드로이드 SDK)란? 
소프트웨어를 개발하기 위한 툴킷
그안에는 아래와 같은것들이 들어가 있다.  
- 안드로이드 API
- 안드로이드 응용프로그램 개발에 필요한 각종 도구들
(컴파일러나 에뮬레이터)
- 샘플 코드들
- 관련 문서들 

 


buildToolsVersion 은 사용할 빌드 툴의 버전을 명시하는 부분

defaultConfig{} : 
AndroidManifest.xml에서 사용하는 설정들에 대해서 동적인 옵션을 주고싶을때 블록내에 포함시킨다.
예를들어 versionCode나 versionName등의 값을 설정하는곳

buildTypes{} : 
dev, alpham betam release 같이 빌드 타입 종류를 지정한다.

dependencies{} : 
라이브러리와 같은 의존성 추가시 이곳에 작성한다.

 

 

그래서 우리는 주로 외부 라이브러리를 추가할때 gradle 파일을 많이 수정한다.

 

반응형