자바 어플 개발/안드로이드 스튜디오 기초

Gradle Script란

appmaster 2019. 7. 21. 15:43

외부에서 추가된 기능들을 라이브러리라고 하는데 이러한 라이브러리를 관리하는것이 gradle이다.

 

보면 첫번째 build.gradle과 두번째 build.gradle을 볼 수 있다.

첫번쨰는 project전체에 영향을 주는 파일을 설정하는 것이다.

두번째는 app에 영향을 주는 파일을 설정하는 것이다.

 

 

 

Module:app에 build.gradle에 들어가면 이러한 모습을 볼 수 있다.

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29 //기계가 알아들을 수 있는 29버전 코드로 바꾼다.
    buildToolsVersion "29.0.0"
    defaultConfig {
        applicationId "com.example.myapplication" //패키지이름이랑 이름이 조합되어있는것.
        minSdkVersion 23 //23버전부터 지원하겠다.(23버전 밑인 핸드폰은 지원을 못함)
        targetSdkVersion 29 //타겟버전은 29이다.
        versionCode 1 //버전코드는 무조건 int형이다.
        versionName "1.0"//버전네임은 스트링형이다.
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes { //빌드타입이 2가지 방법있다.(또한 디버그 방식도 있다.)
        release { //배포버전으로 할수있다.(release버전)
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}


dependencies { //라이브러리를 추가할때 이곳을 이용한다.
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
} 
//안드로이드 프로젝트가 생성될때 기본적으로 이러한 라이브러리가 자동적으로 추가가 된다.

 

 

그리고 여기에서 proguard.rules가 있는데 이곳은 다른사람들이 apk파일을 열었을떄 난독화 시키는 곳이라고 할 수 있다.

 

또한 오른쪽 화면에 gradle을 누르고 파랗게 눌려있는 부분(clean)을 누르게 된다면 빌드의 모든것이 다 지워지게된다. 빌드는 하나도 안되어있고 정말 글씨만 써져있는 상태로 초기화 시켜버리게 된다는 것이다.

 

clean을 눌러서 모두 지워진 상태가 된것을 볼 수 있다.

 

그리고 다시 build하고 싶으면 build를 클릭하면 된다. 그러면 시간이 많이 걸리게 되는데, 일단 build를 한다는 뜻은 dependency에 보면 확인 할 수 있는데, 실제로 위치하는 라이브러리를 인터넷으로 다 땡겨와서 프로젝트에 쌓아놓은 작업이라고 할 수 있다. 즉 이것을 프로젝트안에 실제로 존재하게 만드는 작업이라고 하면 된다.

 

이렇게 클린하고 빌드하는 작업을 언제 하는게 좋나면, 메인엑티비티에 새로 생성을 했을때 R이 오류가 발생했다고 할때이다. 이때가 싱크가 깨졌다는 뜻인데 그떄 하는게 좋다.  또한 rebuild프로젝트를 해도 된다.