본문 바로가기

Android

Gradle Script

- build.gradle (Project : XXXXXX) : 프로젝트 수준의 gradle 설정파일 (프로젝트 전체에 공통으로 적용할 설정)

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript { //외부 저장소 (repositories)와 의존성(dependecies)를 설정
    repositories {//외부 저장소는 jcenter()와 google()을 기본값으로 사용. 원래는 jcentor()가 기본이였으나 최근 구글에서 자체적으로 저장소를 관
        google()
        jcenter()
        
    }
    dependencies {//gradle의 플러그닝 버전을 작성하며 gradle 플러그인 버전은 프로젝트를 생성할 때 자동으로 기입되며 만약 버전이 업데이트 되면 안드로이드 스튜디오에서 알려주어 사용자에게 업데이트를 유도
        classpath 'com.android.tools.build:gradle:3.5.0'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {//일반적으로 buildscript에서 지정한 외부 저장소를 지정
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) { //전체 프로젝트에서 공통으로 사용할 작업을 정의. 기본으로 추가되어 있는 clean 작업은 빌드를 할때 생성되는 build디렉토리들을 삭
    delete rootProject.buildDir
}

- build.gradle (Module : App) : 모듈(앱) 수준의 gradle 설정파일(각 모듈(module)에 필요한 빌드 설정)

//com.android.application 플러그인을 사용
apply plugin: 'com.android.application'

android {//versionCode나 versionName을 AndroidManifest.xml에 작성하였으나 현재는 build.gradle에 작
    compileSdkVersion 29 //컴파일 SDK버전
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "example.com" //컴파일 패키지 버전
        minSdkVersion 23  //최소 API레벨
        targetSdkVersion 29  //권장 API레벨
        versionCode 1  //버전코드정수
        versionName "1.0"  //사용자가 보는 버전명
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {//안드로이드는 기본적으로 debug빌드와 release빌드를 할 수 있음. debug빌드는 코딩 후 <Run> 버튼으로 기기나 에뮬레이터로 바로 실행했을때 이루어짐
        release {
            minifyEnabled false  //코드 난독화여부
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //proguard-android-optimize.txt파일에 기술되어 있고, 추가적 규칙은 proguard-rules.pro에 기
        }
    }
}
//추가라브러리 정의(외부 라이브러리를 지정)
//Gradle 3.0 미만 버전에서는 implement 대신 compile을 사
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar']) //libs 디렉터리를 외부 라이브러리 폴더로 지정. 빌드할때 항상 포함되는 라이브러리.
    implementation 'androidx.appcompat:appcompat:1.0.2'  //AppCompat 라이브러리. 최신버전의 안드로이드 스튜디오는 AppCompat 라이브러리가 기본으로 포함
    implementation 'androidx.constraintlayout:con용straintlayout:1.1.3'  //constraint layout 라이브러리
    testImplementation 'junit:junit:4.12' //자바 유닛 테스트 라이브러리

    //안드로이드 UI테스트 라이브러리
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

- gradle-wrapper.properties (Gradle Version) : gradle 관련 설정이며 특별히 손대지 않아도 됨

- proguard-rules.pro (ProGuard Rules for app) : 코드 난독화 도구인 프로가드 설정파일

- gradle.properties (Global Properties) : gradle의 글로벌 환경설정 파일. 이 파일에는 모든 프로젝트마다 같은 설정 내용을 작성. OS별로 다음 위치에 gradle.properteis 파일을 작성

  · 맥 OS X, 리눅스 : ~/.gradle/

  · 윈도우 : C:\User\[사용자계정]\.gradle\

- settings.gradle (Project Settings) : 프로젝트 생성 시 자동으로 생성되며 어떤 모듈이 프로젝트에 포함되는지 기술

- local.properties (SDK Location) : 프로젝트 생성 시 자동으로 생성되며 안드로이드 SDK의 경로가 지정 되어 있음

 

'Android' 카테고리의 다른 글

인텐트 사용방법  (0) 2020.06.24
안드로이드 4대 구성요소  (0) 2020.05.24
Activity 간 전달  (0) 2020.05.24
res : 리소스  (0) 2020.05.24
AndroidManifest.xml  (0) 2020.05.23