Android Studio 之 Gradle 安裝配置和編譯
目錄
前言
由於生產力很大一部分取決於生產工具的使用,為了緊跟時代的潮流,我也從Eclipse切換到Android Studio來進行Android開發。
使用Android Studio的時候,最先遇到的難點應該就是Gradle的安裝、配置和使用。這篇文章就針對我遇到的坑講解一下如何在Android Stduio中配置Gradle。
Gradle簡介
Gradle與Ant、Maven類似,是一種專案構建工具,之前使用的Eclipse是使用Ant來實現專案構建的。
Gradle基於Groovy語言,面向Android應用為主,它拋棄了基於XML的各種繁瑣的配置,取而代之的是一種基於Grovvy的內部領域特定語言(DSL)。
Gradle安裝
在Android Studio中第一次建立專案的時候,會自動下載Gradle。但是,由於國內網際網路大環境影響,所以一般不使用程式碼的話,下載都會失敗。所以這裡介紹一種如何讓Android Stuido使用已經下載好的gradle版本的方法。
首先,File->Settings->搜尋gradle,將gradle的預設下載目錄指定為:~/.gradle
。同時,不要著急立刻將從網上下載的最新的gradle版本放到這個目錄下,因為Android Studio對目錄結構是有要求的。
Ubuntu下,Gradle預設的目錄結構如下:
可以看到,其中有串很詭異的無規律的字串,這個是Android Studio自動生成的,你從網上下載的zip包必須要放到這個目錄下才行。所以我推薦的做法是:
- 讓Android Studio先自行下載一會Gradle,這樣可以確定Gradle的安裝目錄和Gradle的版本。
- 從Gradle的官網上下載指定的版本(不一定是最新的,我安裝的Android Studio需要的是gradle-2.4版本),然後將下載的zip包扔到那個無規律字串目錄下。記住:不需要解壓,android studio自己會去解包。
- 在你自己的.bashrc檔案裡,配置一下GRADLE_PATH,如下:
# add gradle path
export GRADLE_PATH=/home/wzy/.gradle/wrapper/dists/gradle-2.4-all/6r4uqcc6ovnq6ac6s0txzcpc0/gradle-2.4
export GRADLE_USER_HOME=/home/wzy/.gradle
export PATH=$GRADLE_PATH/bin:$PATH
××××
Gradle構建專案
使用Gradle來構建專案的時候,需要對Gradle的配置檔案有個大概的瞭解,以我的一個測試應用專案為例,Gradle的配置檔案主要有:
- 每個模組的gradle配置檔案。
- 整個專案的gradle配置檔案。
- 統一管理gradle的gradle-wrapper配置檔案。
- 整個專案的模組引用配置檔案。
如下圖所示:
接下來,我根據上述標記的紅色部分進行逐一講解。
XYALL/app/build.gradle(模組gradle配置檔案)
我們首先來看一下這個配置檔案的內容:
// 宣告是android程式
apply plugin: 'com.android.application'
android {
// 編譯SDK的版本
compileSdkVersion 23
// build tools的版本
buildToolsVersion "23.0.1"
defaultConfig {
// 應用包名
applicationId "com.example.wzy.xyall"
// 支援最低裝置sdk的版本
minSdkVersion 19
// 支援目標裝置sdk的版本
targetSdkVersion 23
// 應用版本號
versionCode 1
// 應用版本名稱
versionName "1.0"
}
buildTypes {
release {
// 是否進行混淆
minifyEnabled false
// 混淆檔案的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// 移除lint檢查的error,防止編譯終止
lintOptions {
abortOnError false
}
}
dependencies {
// 編譯libs目錄下所有的jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
}
有幾點需要說明:
- 檔案開頭apply plugin,如果是編譯apk,值為’com.android.application’,如果編譯的是庫,則需要改為’com.android.library’。
- buildToolsVersion必須是你本地安裝的版本,可以通過SDK MANAGER來進行檢視。這個值配置不對,會造成編譯錯誤。
XYALL/build.gradle(整個專案的gradle配置檔案)
檔案內容如下:
buildscript {
repositories {
// gradle外掛下載中心為jcenter
jcenter()
}
// gralde外掛的具體版本。
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
}
// 專案中使用到的庫、jar包的下載中心
allprojects {
repositories {
jcenter()
}
}
XYALL/gradle/wrapper/gradle-wrapper.properties(gradle版本統一管理檔案)
檔案內容如下:
#Mon Sep 21 12:15:49 CST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
gradle-wrapper的作用就是使用統一的方式來管理gradle,保證gradle使用的是統一的版本。說明幾點:
- android studio首先從distributionBase/distributionPath查詢gradle。
- 然後,從zipStoreBase/zipStorePath查詢gradle。
- 如果上述都沒有找到合適的gradle,則從distributionUrl指定的url去下載gradle。
注意:這裡需要在.bashrc中增加GRADLE_USER_HOME的變數定義。
settings.gradle(專案模組引用配置檔案)
這個是全域性的專案配置檔案,裡面主要宣告一些需要加入gradle的模組。
include ':app'
示例專案的配置表示只要app模組的build.gradle加入到編譯中。
編譯
上述配置完成後,就可以使用gradle編譯專案了。常用的構建命令如下:
- gradle clean: 清除之前的構建。
- gradle test:執行測試。
- gradle compileJava:編譯java。
- gradle check:程式碼檢查。
- gradle build:構建打包。
最後再提示一下,構建打包完成後,編譯出來的apk位於:$專案/app/build/outputs/apk/目錄下。