一個基本的 build.gradle 檔案

這是模組中預設 build.gradle 檔案的示例。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.3'

    signingConfigs {
        applicationName {
            keyAlias 'applicationName'
            keyPassword 'password'
            storeFile file('../key/applicationName.jks')
            storePassword 'keystorePassword'
        }
    }
    defaultConfig {
        applicationId 'com.company.applicationName'
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 1
        versionName '1.0'
        signingConfig signingConfigs.applicationName
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'

    testCompile 'junit:junit:4.12'
}

DSL(特定於域的語言)

上述檔案中的每個塊稱為 DSL(特定於域的語言)。

外掛

第一行 apply plugin: 'com.android.application'GradleAndroid 外掛應用於構建,並使 android {} 塊可用於宣告特定於 Android 的構建選項。

對於 Android 應用程式

apply plugin: 'com.android.application'

對於 Android 庫

apply plugin: 'com.android.library'

瞭解上面示例中的 DSL

第二部分,android {...} 塊,是 Android DSL,其中包含有關你的專案的資訊。

例如,你可以設定指定 Android API 級別的 compileSdkVersion,Gradle 應該使用它來編譯你的應用程式。
子塊 defaultConfig 儲存清單的預設值。你可以用 Product Flavors 來製作它們。

你可以在以下示例中找到更多資訊:

依賴

dependencies 塊是在 android{...} 之外定義的:這意味著它不是由 Android 外掛定義的,而是標準的 Gradle。
dependencies 塊指定你希望包含在應用程式中的外部庫(通常是 Android 庫,但 Java 庫也有效)。Gradle 將自動為你下載這些依賴項(如果沒有可用的本地副本),你只需要新增類似的 compile 行,當你希望新增另一個庫時。

讓我們看看這裡出現的一條線:

compile 'com.android.support:design:25.3.1'

這條線基本上說

將 Android 支援設計庫的依賴項新增到我的專案中。

Gradle 將確保下載並顯示庫,以便你可以在應用中使用它,其程式碼也將包含在你的應用中。

如果你熟悉 Maven,則此語法是 GroupId ,冒號, ArtifactId ,另一個冒號,然後是你希望包含的依賴項版本,使你可以完全控制版本控制。

雖然可以使用加號(+)指定工件版本,但最佳做法是避免這樣做; 如果庫在你不知情的情況下更新了更改,可能會導致問題,這可能會導致你的應用程式崩潰。

你可以新增不同型別的依賴項:

應特別注意 aar flat 依賴關係

你可以在此主題中找到更多詳細資訊

請注意 appcompat-v7 中的 -v7

compile 'com.android.support:appcompat-v7:25.3.1'

這只是意味著這個appcompat)與 Android API 級別 7 和轉發相容。

關於 junit 的注意事項 :junit:4.12

這是單元測試的測試依賴性。

指定特定於不同構建配置的依賴項

你可以指定依賴項應僅用於某個構建配置, 或者你可以使用 debugCompiletestCompilereleaseCompile 而不是通常的 compile構建型別產品風格 (例如,除錯,測試或釋出) 定義不同的依賴項。

這有助於保持釋出版本中與測試和除錯相關的依賴關係,這將使你的版本儘可能地保持苗條,並有助於確保任何除錯資訊都不能用於獲取有關你的應用程式的內部資訊。

signingConfig

signingConfig 允許你配置 Gradle 以包含 keystore 資訊,並確保使用這些配置構建的 APK 已簽名並準備好釋出 Play Store。

在這裡,你可以找到專門的主題

注意 :不建議將簽名憑據保留在 Gradle 檔案中。要刪除簽名配置,只需省略 signingConfigs 部分。
你可以通過不同方式指定它們:

有關詳細資訊,請參閱此主題:在不公開金鑰庫密碼的情況下籤署 APK

你可以在專用的 Gradle 主題中 找到有關 Gradle for Android 的更多資訊