請問android studio創建的工程目錄下的gradlew文件有什麼作用?

gradlew 和 gradle 有什麼區別?


其實Gradlew只是一個Gradle的封裝,是給Unix用戶用的.這個腳本的最前面的注釋也說明了這個功能:

##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################

同樣的,gradlew.bat也是一個Gradle的封裝,是給Windows用戶用的

@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################


首先簡單來說就是gradlew 文件是給Unix用戶用的。而且是沒有安裝gradle的也可以運行。

題主你可以做一個實驗,在build.gradle文件中加入

task createWrapper(type: Wrapper) {
gradleVersion = "0.9"
}

運行

gradle createWrapper

你就會發現生成了4個新的文件:

0.gradle-wrapper.jar

1.gradle-wrapper.properties

2.gradlew

3.gradlew.bat

其中,這些個文件的意思就是,任何機器都可以運行這個build即使沒有裝gradle,如果沒有裝就會根據gradle-wrapper裡面的配置下載特定版本(之前的gradleVersion)。

這個最重要的運用就是:

1. 在公司內統一gradle版本

2. 把gradle-wrapper.properties裡面的下載gradle的鏈接切換到公司的公共空間上,那麼下載和安裝gradle的時間就可以忽略不計了。


Gradle時基於Groovy語言,面向Java應用為主的一種項目構建工具。Android Studio默認使用Gradle工具,所以當創建一個新的project時,它的結構是這樣子的 :

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

gradlew一般用於版本的構建,使用方法 : gradlew + 命令, 比如創建一個debug版本的apk

gradlew assembleDebug

gradlew相關命令

    • assemble : 針對某個版本創建一個apk
    • clean : 刪除所有的構建任務(包含已經構建號的apk文件)
    • check : 執行Lint檢查,如果Lint檢查到錯誤,則停止執行腳本
    • build : 同時執行assemble,check命令
    • connectedCheck : 執行測試任務
    • deviceCheck : 執行在遠程設備上的測試
    • installDebug : 安裝debug版本
    • installRelease : 安裝release版本
    • uninstallDebug : 卸載debug版本
    • uninstallRelease : 卸載release版本
    • tasks :查看當前可構建的所有task
    • -v : 查看當前的gradle版本


推薦閱讀:

鎚子手機如何 Root?
如何看待金立簽約薛之謙作為代言人以及s10的發布?
金立將發布互聯網手機品牌 IUNI,它可能複製小米的成功嗎?
出色地利用了手機感測器的優秀應用都有哪些?
劉德華為什麼會接拍金立手機的廣告?

TAG:Android | Gradle | AndroidStudio |