學習Android Studio裡的Gradle

來源:互聯網
上載者:User

標籤:

一直聽說Gradle很強大,只是偶爾用Android Studio建立Demo的時候看到他一次,今天抽個時間完整記錄一下。

1.gradle位置

Android Studio項目建立好之後,預設有3個gradle檔案,分別位於:

  • /settings.gradle 
  • /build.gradle
  • /app/build.gradle

2.gradle內容

  • settings.gradle 預設只有一行代碼,即:
    include ‘:app‘

    新建立的項目只有app一個子項目。如果在project裡添加了子項目(Module),按理需要在settings.gradle裡添加相應子項目名稱,如:

    include ‘:app‘, ‘:androidlibrary‘

    提示:當你添加一個Module後,最新版的Android Studio會自動在settings.gradle裡配置好,Amazing。

  • 根目錄的build.gradle 就比較豐富了,預設有三個“節點”,buildscriptallprojectstask clean。
    buildscript {    repositories {        jcenter()    }    dependencies {        classpath ‘com.android.tools.build:gradle:1.3.0‘    }}allprojects {    repositories {        jcenter()    }}task clean(type: Delete) {    delete rootProject.buildDir}

  buildscript下的第一個子“節點”是聲明倉庫源,預設是jcenter,之前版本則是mavenCentral,也可以兩個center共存。jcenter可以理解成是一個新的中央遠程倉庫,相容maven中心倉庫,而且效能更優。第二個子“節點”是聲明Android gradle plugin的版本,Android Studio 1.5版預設是gradle 1.3。

  allprojects下是聲明了所有project預設的倉庫源。

  task clean聲明了一個任務,任務名叫clean(也可以改為其它),任務類型是Delete(也可以是Copy),就是每當修改settings.gradle檔案後點擊同步,就會刪除rootProject.buildDir下的檔案(實際上我看到的效果是清除了External Libraries裡的包,然後又添加了一次)。

  • app/build.gradle 就是預設android子項目的gradle檔案了,也是三個小節點:apply、android和dependencies。
apply plugin: ‘com.android.application‘android {    compileSdkVersion 15    buildToolsVersion ‘19.1.0‘    defaultConfig {        applicationId "com.nait.picassodemo"        minSdkVersion 4        targetSdkVersion 15        versionCode 1        versionName "1.0"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘        }    }    productFlavors {    }}dependencies {    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])    compile ‘com.squareup.picasso:picasso:2.5.2‘    compile ‘com.squareup.okhttp:okhttp:2.5.0‘    compile ‘com.umeng.analytics:analytics:5.6.1‘    testCompile ‘junit:junit:4.12‘}

 

appley節點:apply plugin: ‘com.android.application‘

以上語句中的apply是一個方法,給它傳遞了一個參數plugin,plugin 的值是‘com.android.application‘。如果有多個參數,則以逗號隔開,例如:compile name: ‘volley‘, ext: ‘aar‘。

android節點:前面部分很好理解,從字面意思就能瞭解。buildTypes預設是release(也可以添加debug),minifyEnabled表示是否需要混淆,proguardFiles 表示混淆設定檔的名稱。productFlavors表示多渠道包(以後深入學習後再寫)。

dependencies節點:com.開頭的部分是Demo項目中添加的引用包,規則是namesapce:package name:version,其它兩行是項目建立後預設添加的。

 

參考文檔:

http://www.cnblogs.com/youxilua/archive/2013/05/22/3092657.html

http://www.blogjava.net/wldandan/archive/2012/07/12/382792.html

http://www.android100.org/html/201502/16/119379.html

學習Android Studio裡的Gradle

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.