標籤:
.gradle 檔案介紹
一個 Android Studio 項目中,會存在多個 .gradle 檔案。其中, project 目錄下存在一個 build.gradle 檔案和一個 settings.gradle 檔案;每一個 module 會存在一個 build.gradle 檔案。
關於 gradle 的基本講解
Settings.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { //用於設定驅動構建過程的代碼 repositories { jcenter()//聲明使用 maven 倉庫。在老版本中,此處為 mavenCentral()。 // mavenCentral() :表示依賴從 Central Maven 2 倉庫中擷取。 // jcenter() :表示依賴從 Bintary’s JCenter Maven 倉庫中擷取。 // **mavenLocal()** :表示依賴從本地的Maven倉庫中擷取。 } dependencies {//聲明了使用 Android Studio gradle 外掛程式版本。一般升級AS或者匯入從 //Eclipse中產生的項目時需要修改下面gradle版本。 classpath ‘com.android.tools.build:gradle:1.2.2‘ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects {//設定每一個 module 的構建過程。在此例中,設定了每一個 module 使用 // maven 倉庫依賴。 repositories { jcenter() }}
預設的 project 目錄下的 settings.gradle 檔案內容如上。可有可能預設情況下, project 目錄下的 settings.gradle 檔案不存在,你可以自己建立。
? include ‘:app’:表示當前 project 下有一個名稱為 app 的 module 。 :
如果你需要引入的 module 並不是在 工程的根目錄下面
可以如下設定
include ‘:app2‘project(‘:app2‘).projectDir = new File(‘path/to/app2‘)
接下來講 module 中的 build.gradle 檔案
apply plugin: ‘com.android.application‘android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.hzchou.myapplication" minSdkVersion 18 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ } }}dependencies { compile fileTree(dir: ‘libs‘, include: [‘*.jar‘]) compile ‘com.android.support:appcompat-v7:22.2.0‘}
? apply plugin: ‘com.android.application’:
表示使用 com.android.application 外掛程式。也就是表示,這是一個 android application module 。 com.android.library 表示,這是一個 android library module 。
? android:
配置所有android構建過程需要的參數。
? compileSdkVersion:
用於編譯的 SDK 版本。
? buildToolsVersion:
用於 Gradle 編譯項目的工具版本。
? defaultConfig:
Android 項目預設設定。
1. applicationId:應用程式套件組合名。
2. minSdkVersion:最低支援 Android 版本。
3. targetSdkVersion:目標版本。實際上應為測試環境下測試機的 Android 版本。
4. versionCode:版本號碼。
5. versionName:版本名稱。
? buildTypes:
編譯類型。預設有兩個: release 和 debug 。我們可以在此處添加自己的 buildTypes ,可在 Build Variants 面板看到
? minifyEnabled:
是否使用混淆。在老版本中為 runProguard ,新版本之所換名稱,是因為新版本支援去掉沒使用到的資源檔,而 runProguard 這個名稱已不合適了。
? proguardFiles:
使用的混淆檔案,可以使用多個混淆檔案。此例中,使用了 SDK 中的 proguard-android.txt 檔案以及當前 module 目錄下的 proguard-rules.pro 檔案。
? dependencies:
用於配製引用的依賴。
1. compile fileTree(dir: ‘libs’, include: [‘*.jar’]):
引用當前 module 目錄下的 libs 檔案夾中的所有 .jar 檔案。
2. compile ‘com.android.support:appcompat-v7:21.0.3’:
引用 21.0.3版本的 appcompat-v7 (也就是常用的v7* library 項目)。
Android開發工具之Android Studio----Gradle