做者博客: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