近日學習使用AndroidStudio進行安卓方向的開發,對於其Gradle功能一直不太理解,經過資料查詢,匯總在此以便記錄。
1.Gradle的來歷及意義
Gradle 是新一代的自動化構建工具,它是一個獨立的項目,跟 AS、Android 無關。但Google 在推出 AS 的時候選中了 Gradle 作為構建工具,為了支持 Gradle 能在 AS 上使用,Google 做了個 AS 的插件叫 Android Gradle Plugin ,所以我們能在 AS 上使用 Gradle 完全是因為這個插件的原因。
在項目的根目錄有個 build.gradle 文件,里面有這么一句代碼:
classpath 'com.android.tools.build:gradle:2.1.2'
這個就是依賴 gradle 插件的代碼,后面的版本號代表的是 android gradle plugin 的版本,而不是 Gradle 的版本,這個是 Google 定的,跟 Gradle 官方沒關系。
2.Gradle對AS的作用
新建一個項目,然后點擊 AS 上的運行,默認就會直接幫你安裝 Gradle ,我們不需要額外的安裝 Gradle 了,但是其實這個 Gradle 不是真正的 Gradle ,他叫 Gradle Wrapper ,意為 Gradle 的包裝。目的是為每個項目都配置了一個指定版本的 Gradle ,可以理解為每個 Android 項目本地都有一個小型的 Gradle ,通過這個每個項目你可以支持用不同的 Gradle 版本來構建項目。
總而言之,Gradle方便在沒有集成開發環境的條件下進行項目的編譯打包。
3.常用Gradle命令
./gradlew -v 版本號
./gradlew clean 清除app目錄下的build文件夾
./gradlew build 檢查依賴並編譯打包
./gradlew assembleDebug 編譯並打Debug包
./gradlew assembleRelease 編譯並打Release的包
4.AndroidStudio目錄結構
- app/build/ app模塊build編譯輸出的目錄
- app/build.gradle app模塊的gradle編譯文件
- app/app.iml app模塊的配置文件
- app/proguard-rules.pro app模塊proguard文件
- build.gradle 項目的gradle編譯文件
- settings.gradle 定義項目包含哪些模塊
- gradlew 編譯腳本,可以在命令行執行打包
- local.properties 配置SDK/NDK
- MyApplication.iml 項目的配置文件
- External Libraries 項目依賴的Lib, 編譯時自動下載的
- app/manifests AndroidManifest.xml配置文件目錄
- app/java 源碼目錄
- app/res 資源文件目錄
- Gradle Scripts gradle編譯相關的腳本