Android studio 에서 gradle 의 이해

8666 단어 androidgradle
Gradle 이 뭐 예요?
Gradle 은 Groovy 언어 를 기반 으로 자바 응용 을 위주 로 하 는 관리 도구 로 XML 기반 의 각종 번 거 로 운 설정 을 버 리 고 Groovy 기반 의 내부 영역 특정 (DSL) 언어 를 사용 합 니 다.
Gradle 은 Android 개발 에 사용 할 수 있 는 차세 대 Build System 이자 Android Studio 의 기본 build 도구 입 니 다.
Gradle 스 크 립 트 는 JVM 언어 – Groovy 에 DSL (영역 특정 언어) 을 기반 으로 구성 되 어 있 습 니 다.
Groovy 는 JVM 언어 이기 때문에 대부분의 자바 언어 라 이브 러 리 를 사용 할 수 있다.DSL 이란 표준 Gradle 이외 의 새로운 방법 (Method), 클 로 저 (Closure) 등 안 드 로 이 드 를 대상 으로 개발 한 플러그 인 입 니 다.
Gradle 의 문법 이 충분히 간결 하고 대부분의 자바 백 을 사용 할 수 있 기 때문에 차세 대 Build System 에 부 끄 럽 지 않 습 니 다.
Android Studio 를 사용 하여 프로젝트 를 새로 만 들 면 기본적으로 build. gralde 파일 두 개 를 생 성 합 니 다. 하 나 는 프로젝트 루트 디 렉 터 리 에 있 고 하 나 는 app 디 렉 터 리 에 있 습 니 다.또 다른 파일 이 있 습 니 다 - settings. gradle.
루트 디 렉 터 리 에 있 는 스 크 립 트 파일 은 module 의 전역 설정 입 니 다. 역할 한도 에 포 함 된 모든 module 는 settings. gradle 을 통 해 설정 합 니 다.
app 폴 더 는 module 입 니 다. 현재 프로젝트 에 새로운 module – lib 를 추가 하면 settings. gralde 파일 에 이 새로운 module 를 포함 해 야 합 니 다.
gradle 스 크 립 트 의 기본 구조
현재 프로젝트 의 예 를 들 어 루트 디 렉 터 리 의 build. gradle 내용 은 다음 과 같 습 니 다.
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0-rc4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()

        maven {
            url 'http://mvnrepo.xxx.com/mvn/repository'
        }
    }
}

classpath 'com. android. tools. build: gradle: 1.0.0 - rc4' 는 Android 특유 의 플러그 인 입 니 다. Maven 창 고 는 방법 jCenter () 를 통 해 가 져 옵 니 다. 이것 도 기본 Maven 창고 입 니 다.물론 위 파일 에 있 는 Maven 창고 주 소 를 추가 할 수 있 습 니 다.
maven { url 'http://mvnrepo.xxx.com/mvn/repository' }

그리고 settings. gradle 파일:
include ':app'

app 은 프로젝트 에 포 함 된 module 입 니 다. 여러 module 이 있 으 면 include 방법 에 여러 개의 인 자 를 추가 할 수 있 습 니 다.
마지막 으로 app / build. gradle.
apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }


    defaultConfig {
        applicationId "your.application.id"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 2
        versionName "2.0.0"
    }

    signingConfigs {
        release {
            storeFile file('release.keystore')
            storePassword "yourstorepassword"
            keyAlias "yourkeyalias"
            keyPassword "yourkeypassword"
        }
        debug {
            storeFile file('debug.keystore')
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }

    productFlavors {
        inner {
            applicationId "your.application.inner.id"
            versionName "2.0.0"
        }

        market {

        }
    }
}

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {

    //   
    compile name: 'volley', ext: 'aar'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
    compile 'com.alibaba:fastjson:latest.integration'

    //     (   )
}

Groovy 의 기본 문법
방법 호출
apply plugin: 'com.android.application'

상기 문장의 apply 는 하나의 방법 으로 매개 변수 plugin 을 전 달 했 습 니 다. plugin 의 값 은 'com. android. application' 입 니 다.여러 개의 인자 가 있 으 면 쉼표 로 구분 합 니 다. 예 를 들 어 compile name: 'volley', ext: 'aar'닫 기 Groovy 에 괄호 가 포 함 된 부분 은 닫 기 (Closure) 가 됩 니 다.예 를 들 어 아래 코드
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

copile Options 는 하나의 Method 입 니 다. 그 매개 변 수 는 하나의 패 킷 입 니 다. 이 패 킷 은 두 가지 방법 을 순서대로 실 행 했 습 니 다 – source Compatibility 와 targetCompatibility, 매개 변 수 는 모두 자바 버 전. VERSION 17 입 니 다.
패 킷 을 닫 아 도 끼 워 넣 을 수 있 습 니 다.
repositories {
    flatDir {
        dirs 'libs'
    }
}

흔 한 사용법
패키지 의존 (aar)
aar 를 사용 할 때 두 가지 상황 으로 나 눌 수 있 습 니 다 ① aar 는 로 컬 디 렉 터 리 에 있 습 니 다.
우선 안 드 로 이 드 의 매개 변수 패키지 에 호출 방법 reposcories 를 추가 합 니 다.
repositories {
    flatDir {
        dirs 'libs'
    }
}

그리고 dependencies 의 인자 패 킷 에 추가 합 니 다.
compile name: 'volley', ext: 'aar'

② aar 는 원 격 창고 에 있 습 니 다.
여 기 는 maven 을 예 로 들 면 물론 다른 유형의 창 고 를 사용 할 수 있 습 니 다. 예 를 들 어 Ivy.
jar 패키지 참조 방식 뒤에 @ aar 만 추가 하면 됩 니 다.
compile 'com.alibaba:fastjson:latest.integration@aar'

패키지 의존 (jar)
compile group: 'com.alibaba', module: 'fastjson', version: 'latest.integration'

간략하게 쓸 수 있다
compile 'com.alibaba:fastjson:latest.integration'

latest. integration 은 서버 의 최신 버 전 을 가 져 오 는 구체 적 인 버 전 번호 로 바 꿀 수 있 습 니 다.
중복 의존 을 없애다
compile 'com.alibaba.fastjson.latest.integration' {
    exclude module: 'annotations', group: 'com.google.android'
}

Java7 compileOptions {sourceCompatibility JavaVersion. VERSION 1 7 targetCompatibility JavaVersion. VERSION 1 7} 사용
produtFlavors 는 서로 다른 앱 배포 채널 에 대해 서로 다른 produt flavor 를 정의 할 수 있 습 니 다.내부 버 전과 외부 버 전 을 정의 할 수도 있 고 내부 버 전에 디 버 깅 코드 가 포함 되 어 있 으 며 이 코드 들 은 발표 할 때 마지막 앱 에 컴 파일 되 지 않 습 니 다.또한 내부 버 전과 외부 버 전에 서로 다른 ApplicationId 를 지정 하여 같은 장치 에 두 개의 버 전 을 동시에 설치 하여 디 버 깅 을 편리 하 게 할 수 있 습 니 다.
명령 행 실행 Gradle 스 크 립 트 는 Android 프로젝트 루트 디 렉 터 리 에서 셸 스 크 립 트 - gradlew 를 자동 으로 생 성 합 니 다. 실행 하기 전에 x 속성 - chomod + x gradlew 를 추가 하 십시오.
gradle 스 크 립 트 에는 많은 task 가 포함 되 어 있 습 니 다. task 이름 을 통 해 실행 할 task 를 지정 할 수 있 습 니 다.
./gradlew build./gradlew assemble./gradlew assembleInnderDebug
총결산
어 쩔 수 없 이 Gradle 은 정말 쓰기 좋다!Gradle 은 Ant 나 maven 과 함께 사용 할 수 있 지만 간결 함 과 기능 성 은 다른 두 개 보다 훨씬 높다.제 가 현재 개발 한 프로젝트 는 Maven 을 보편적으로 사용 하고 있 습 니 다. 어떤 이유 인지 모 르 겠 습 니 다. Gradle 을 사용 할 때 원 격 의존 패 키 지 를 얻 지 못 하 는 문제 가 자주 발생 합 니 다. 가장 간단 한 해결 방법 은 의존 패 키 지 를 다운로드 하 는 로 컬 입 니 다.
전송:http://www.2cto.com/kf/201412/359002.html

좋은 웹페이지 즐겨찾기