Gradle和Android Studio入門

簡介

做者博客:http://www.kevinpelgrims.com/
審稿的博客:http://www.peterfriese.de/


Android Studio May 2013發佈,支持Gradle,基於JetBrains' IntelliJ IDEA,支持Linux, Mac OS X, and Microsoft Windows。
相比於Eclipse的,Android Studio有改進的用戶界面設計,更好的內存監視器,更好的字符串翻譯編輯器,可能的Android具體問題警告等,旨在Android開發者。增長了特殊的項目結構視圖(Project有Packages和Project),更好地組織了Gradle腳本、drawables等資源。2014年12月發佈的1.0以後,Android Developer Tools (ADT) for Eclipse再也不有新功能,須要儘快遷移到Android Studio。

Gradle有較好的默認值、基於domain-specificlanguage (DSL 基於Groovy,一種基於JVM-based的語言,其餘基於JVM-based的語言能夠實現相似效果),腳本通常在文件build.gradle中,而不是XML。
Gradle的編譯由一個或多個project組成、project由一個或多個task組成。每一個build.gradle表示一個project,Task包含若干個Action(相似Java的方法)。

構建生命週期
工做流的動態模型:Directed Acyclic Graph (DAG)。這意味着全部的task依次處理,不可能有循環。無依賴的task會先執行。三個階段以下:
•Initialization(初始化):建立項目實例。若是有多個模塊,每一個都有本身的build.gradle文件,並建立多個project。
•Configuration(配置):執行構建腳本,建立和配置每一個project的task。
•Execution(執行):決定哪些task應該是執行。哪些任務的執行取決於傳遞的參數及當前目錄。

html

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

JCenter是預約義的maven倉庫。以上爲一般project視圖根目錄的build.gradle的配置。

模塊目錄的build.gradle頭部的apply plugin: 'com.android.application'表示應用Android插件。若是是庫,要改用library。

下面是Android特有的部分:
java

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
}

上面的編譯配置通常用最新版本。

gradle的建議代碼結構圖:python

MyApp
├── build.gradle
├── settings.gradle
└── app
    ├── build.gradle
    ├── build
    ├── libs
    └── src
        ├── main
        │    ├── java
        │    │ └── com.package.myapp
        │    ├── res
        │    ├── drawable
        │    ├── layout
        │    └── etc.
        └── test
            └── com.package.myapp

/src/main/java The source code for the app
/src/main/res These are app-related resources (drawables, layouts, strings, and so on)
/libs These are external libraries (.jar or .aar)
/build The output of the build processandroid


Android studio 若是選擇小於API 21,會自動添加Android Support Library(包含appcompat)。

構建:Build菜單->Make Project, 快捷方式Ctrl + F9或Cmd + F9(Mac OS X)。工具欄和Gradle窗口也有相似快捷方式。

Gradle的不一樣版本可能不兼容,Gradle Wrapper能夠下載指定版本的Gradle。Linux使用gradlew或Windows使用gradlew.bat代替gradle便可。

檢查指定的版本是否存在:

app

# ./gradlew -v
Unzipping /root/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0/gradle-2.4-all.zip to /root/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0
Set executable permissions for: /root/.gradle/wrapper/dists/gradle-2.4-all/3i2gobhdl0fm2tosnn15g540i0/gradle-2.4/bin/gradle
------------------------------------------------------------
Gradle 2.4
------------------------------------------------------------
Build time:   2015-05-05 08:09:24 UTC
Build number: none
Revision:     5c9c3bc20ca1c281ac7972643f1e2d190f2c943c
Groovy:       2.3.10
Ant:          Apache Ant(TM) version 1.9.4 compiled on April 29 2014
JVM:          1.7.0_79 (Oracle Corporation 24.79-b02)
OS:           Linux 2.6.32-573.18.1.el6.x86_64 amd64

Windows使用:gradlew.bat –v

生成wrapper文件的方法:
dom

# vi build.gradle
task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}
# gradle wrapper
:wrapper
BUILD SUCCESSFUL
Total time: 2.315 secs
This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.11/userguide/gradle_daemon.html

還能夠指定版本:
maven

gradle wrapper --gradle-version 2.4

生成的文件:
編輯器

myapp/
├── gradlew
├── gradlew.bat
└── gradle/wrapper/
    ├── gradle-wrapper.jar
    └── gradle-wrapper.properties

    

# vi gradle-wrapper.properties 
#Tue Dec 08 19:12:35 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

最後一個地址是能夠修改的。   

ide

相關文章
相關標籤/搜索