[Android Studio] Gradle

關於Android Studio 中的 gradle

本文參考了開發技術前線 www.devtf.cn
(該文詳細介紹了 Jcenter 和 Maven 這兩個中央倉庫)和Stromzhang的Android studio系列教程之Gradle兩篇博文,以及Android官網文檔

創世之初,世上只有 Make 一種構建工具,後來,其發展爲 GNU Make。但是,由於需求的不斷涌現,碼農的世界裏逐漸演化出了千奇百怪的構建工具。

當前,JVM 生態圈由三大構建工具所統治 Ant,Maven,Gradle。Gradle和前兩者類似,但是卻結合了前兩者的優點,在此基礎之上做了很多改進。也就是說,gradle 並不是 Android Studio 所特有的,他同時可以來構建其他 Java 項目。

在學習 gradle 之前,如果對構建工具不怎麼熟悉,建議學習一下 Maven。限於文章篇幅,我在這裏對Maven就不再詳細介紹了。接下來我就以一個小的項目爲例來給大家介紹一下 Gradle。

這是一個 Android 項目的文件目錄:

build.gradle (Project)

這是 Project 下的 gradle 文件(第一個gradle文件):

buildscript 中可以聲明 gradle 腳本自身需要使用的資源。可以聲明的資源包括依賴項、第三方插件、maven 倉庫地址等。
表示: gradle腳本自身使用了Jcenter這個中央倉庫。
依賴的路徑爲’com.android.tool.build:gradle:1.5.0’
jcenter是一個由 bintray.com 維護的 Maven 倉庫 。
Maven Central 則是由 sonatype.org 維護的 Maven 倉庫

allprojects 中可以聲明依賴項、倉庫地址等整個項目自身需要的資源。表示:倉庫爲 jcenter。(現在新版本的 Android Studio默認的倉庫爲Jcenter
我們在項目的 build.gradle 文件中如下定義倉庫,就能使用jcenter了:


allprojects {
    repositories {
        jcenter()
    }
}

build.gradle (Module)

這是 Module 下的 gradle 文件:

apply plugin: ‘com.android.application’表示項目類型爲Android 應用程序。

compileSdkVersion 17,說明要運行該源碼,你必選已經安裝了android API 17,也就是 API Level。以下是android官網上對應SDK版本所對應的API Level。

buildToolsVersion 23.0.2 說明要運行該源碼,你必須已經安裝了 android sdk build-tools 23.0.0(中間會有一些小的版本比如23.0.1,23.03等等,但沒有影響)。 buildeToolVersion 是你構建工具的版本,其中包括了打包工具 aapt、dx等等。
(注意: buildToolVersion 的版本號必須大於或者等於 compileSdkVersion 和 targetSdkVersion 的版本號。)

applicationId “com.example.customview01” 說明項目的包名的地址爲com.example.customview01。

minSdkVerison 8 表示向下低至android API 8,即 androd 2.2的版本都要安裝上。Android 的manifest 文件中提供了 標籤。該標籤中有三個屬性,分別是minSdkVersion,targetSdkVersion,maxSdkVersion。官網上都有詳細解釋。在這三個屬性比較容易讓人迷惑,我也是仔細讀了谷歌的官方文檔,才弄清楚這三個屬性的意義。此外,在項目構建時,還有個概念叫 build target,在本文中也會進行分析。

targetSdkVersion 17 表示這個應用程序運行的手機系統環境最好是17( Android 4.2 或者 Android 4.2.2)低於這個版本的的手機系統運行這個應用程序時,將會導致該應用程序的某些新特性無法表現出來。

minifyEnabled false 表示不進行代碼混淆,代碼混淆技術是一種防止反編譯,保護源代碼的一種技術。具體可以查維基百科

proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’ 表示文件的位置。

最下面的 dependencies 裏指明的就是需要用到的第三方庫’com.android.support:support-v4:18.0.0’

gradle-warpper

這個目錄下有個 wrapper 文件夾,裏面可以看到有兩個文件,文件中聲明瞭它指向的目錄和版本。只要下載成功即可用grdlew wrapper的命令代替全局的gradle命令。


    #Wed Oct 21 11:34:03 PDT 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

總結

這是我第一次接觸項目構建工具 Gradle,所以查了很多資料,包括一些 Gradle 的官方文檔以及一些優秀的博客,同時也瞭解 Gradle 的前世今生(這個背景很重要,因爲我之前都不知道
Gradle 是幹嘛的),以及類似的項目構建工具 Ant,maven。知道了項目構建工具對實際項目開發的重要性。

發佈了28 篇原創文章 · 獲贊 34 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章