Android studio 에서 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.