鑒于Android Studio使用Gradle構(gòu)建項目,在IDE的使用過程中可能會遇到很多令人頭疼的問題。大錘也是第一次接觸,為有個基本的認(rèn)識,特找來Android官方手冊,和大家一起學(xué)習(xí)學(xué)習(xí)。翻譯不當(dāng)之處,望指出。
為什么要用Gradle?
Gradle是比較先進(jìn)的構(gòu)建系統(tǒng),也是一個很好的構(gòu)建工具,允許通過插件自定義構(gòu)建邏輯
以下是為什么Android Studio選擇Gradle的主要原因:
使用領(lǐng)域?qū)S谜Z言(Domain Specific Language)來描述和處理構(gòu)建邏輯。(以下簡稱DSL)
基于Groovy。DSL可以混合各種聲明元素,用代碼操控這些DSL元素達(dá)到邏輯自定義。
支持已有的Maven或者Ivy倉庫基礎(chǔ)建設(shè)
非常靈活,允許使用best practices,并不強(qiáng)制讓你遵照它的原則來。
其它插件時可以暴露自己的DSL和API來讓Gradle構(gòu)建文件使用。
允許IDE集成,是很好的API工具
需要準(zhǔn)備:
Gradle 1.6 or 1.7
SDK with Build Tools 17.0.0 (released 5/16/2013)
Basic Project
在Gradle項目的根目錄下,有個叫build.gradle的文件,它描述了這個項目的整體構(gòu)建基礎(chǔ)。
build文件
最基本的java程序,它的build.gradle文件就一句話:
apply plugin: 'java'
最基本的Android項目,它的build.gradle如下:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.6' } } apply plugin: 'android' android { compileSdkVersion 17 }
我們一步步來分析一下上面三部分的內(nèi)容。
buildscript{...} 配置了驅(qū)動build的代碼,它聲明將在Maven中央倉庫,取一個classpath dependency,也就是Android plugin for Gradle v0.5.6
apply plugin 指明了用到的plugin是android,就像前面java程序中,用的plugin是java一樣
android{...} 中配置了所有android構(gòu)建的參數(shù),這里也就是Android DSL的入口點(diǎn)。
默認(rèn)的,只有目標(biāo)編譯環(huán)境是必要的,也就是compileSdkVersion這個屬性。這和以前在project.properties中的target屬性類似。
值得注意的是,如果你在Android項目中寫 apply plugin:java 而不是apply plugin:android的話,將會build失敗。