一、概念
1、獨立項目,和Google無關
2、Grdle基於Groovy。(Maven、Ant基於xml)
3、Gradle兼容Maven、Ant
4、Gradle 的推出主要以 Java 應用爲主,當然還支持 Android、C、C++等。
- assemble:對所有的 buildType 生成 apk 包。
- clean:移除所有的編譯輸出文件,比如apk
- check:執行
lint
檢測編譯。 - build:同時執行
assemble
和check
命令
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
內容主要包含了兩個方面:一個是聲明倉庫的源,這裏可以看到是指明的jcenter(), 之前版本則是mavenCentral(), jcenter可以理解成是一個新的中央遠程倉庫,兼容maven中心倉庫,而且性能更優。另一個是聲明瞭android
gradle plugin的版本,android studio 1.0正式版必須要求支持gradle plugin 1.0的版本。// com.android.application 說明了這是一個項目
// 如果是作爲庫的module 是 apply plugin: 'com.android.library'
apply plugin: 'com.android.application'
// android 相關 構建參數
android {
compileSdkVersion 23 // 編譯使用SDK版本
buildToolsVersion "23.0.3" // 編譯工具的版本 buildTools
defaultConfig {
applicationId "com.am.gradletest" // 用於標識的包名
minSdkVersion 14 // sdk最低支持版本
targetSdkVersion 23 // 目標SDK版本,如果目標設備的API版本正好等於此數值,就不會爲此程序開啓兼容性檢查判斷的工作
versionCode 1 //版本號
versionName "1.0"
}
// 編譯類型
// 下面 聲明瞭 debug 和 release 兩種類型,名字隨意
buildTypes {
// release 發佈 ,release裏面是關於發佈的配置
release {
minifyEnabled false // minifyEnabled 是否開啓混淆,false不開啓
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 混淆文件
}
// debug(不作爲發佈版)時候的配置,這個debug的代碼塊默認不帶,這裏是手動加的
debug{
}
}
}
// 依賴 三種依賴,第一種是本地的jar,第二種是本地的module庫,第三種是利用gradle遠程的依賴管理
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) // 這句代碼會自動依賴本地的所有jar,就不要逐個依賴了
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
}
文件開頭apply plugin是最新gradle版本的寫法。buildToolsVersion這個需要你本地安裝該版本才行,很多人導入新的第三方庫,失敗的原因之一是build version的版本不對,這個可以手動更改成你本地已有的版本或者打開 SDK
Manager 去下載對應版本。applicationId代表應用的包名,也是最新的寫法,這裏就不在多說了。因爲這是針對設備的設置,不同的設備SDK路徑不一定一樣。
Gradle的生命週期
1. Initialization -初始化階段
2. Configuration -配置階段
3. Execution -執行階段
如下是構建過程
1. 編譯器將您的源代碼轉換成 DEX(Dalvik Executable)文件(其中包括運行在Android設備上的字節碼),將所有其他內容轉換成已編譯資源。
2. APK 打包器將 DEX文件和已編譯資源合併成單個APK。不過,必須先簽署APK,才能將應用安裝並部署到Android設備上。
3. APK 打包器使用調試或發佈密鑰庫簽署您的APK