1. 程式人生 > >Android Studio 之 Gradle 安裝配置和編譯

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對目錄結構是有要求的。
android studio settings

Ubuntu下,Gradle預設的目錄結構如下:
gradle path

可以看到,其中有串很詭異的無規律的字串,這個是Android Studio自動生成的,你從網上下載的zip包必須要放到這個目錄下才行。所以我推薦的做法是:

  1. 讓Android Studio先自行下載一會Gradle,這樣可以確定Gradle的安裝目錄和Gradle的版本。
  2. 從Gradle的官網上下載指定的版本(不一定是最新的,我安裝的Android Studio需要的是gradle-2.4版本),然後將下載的zip包扔到那個無規律字串目錄下。記住:不需要解壓,android studio自己會去解包
  3. 在你自己的.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的配置檔案主要有:

  1. 每個模組的gradle配置檔案。
  2. 整個專案的gradle配置檔案。
  3. 統一管理gradle的gradle-wrapper配置檔案。
  4. 整個專案的模組引用配置檔案。

如下圖所示:
gradle-android_studio

接下來,我根據上述標記的紅色部分進行逐一講解。

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'
}

有幾點需要說明:

  1. 檔案開頭apply plugin,如果是編譯apk,值為’com.android.application’,如果編譯的是庫,則需要改為’com.android.library’。
  2. 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使用的是統一的版本。說明幾點:

  1. android studio首先從distributionBase/distributionPath查詢gradle。
  2. 然後,從zipStoreBase/zipStorePath查詢gradle。
  3. 如果上述都沒有找到合適的gradle,則從distributionUrl指定的url去下載gradle。

注意:這裡需要在.bashrc中增加GRADLE_USER_HOME的變數定義。

settings.gradle(專案模組引用配置檔案)

這個是全域性的專案配置檔案,裡面主要宣告一些需要加入gradle的模組。

include ':app'

示例專案的配置表示只要app模組的build.gradle加入到編譯中。

編譯

上述配置完成後,就可以使用gradle編譯專案了。常用的構建命令如下:

  1. gradle clean: 清除之前的構建。
  2. gradle test:執行測試。
  3. gradle compileJava:編譯java。
  4. gradle check:程式碼檢查。
  5. gradle build:構建打包。

最後再提示一下,構建打包完成後,編譯出來的apk位於:$專案/app/build/outputs/apk/目錄下。