你的位置:首页 > 操作系统

[操作系统]学习Android Studio里的Gradle

一直听说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


几月份去普吉岛旅游最好什么时候去普吉岛旅游最便宜去普吉岛旅游跟团要多少钱去普吉岛旅游需要多少钱普吉岛旅游大概多少钱七娘山野炊山庄好玩吗?深圳七娘山野炊山庄怎么样? 深圳七娘山地质公园在哪里?大鹏半岛国家地质公园地址? 南澳七娘山野炊山庄官网,南澳七娘山官方网站。 中山逍遥谷怎么去?五桂山逍遥谷自驾攻略? 永记生态园滑草多少钱?惠州永记生态园有滑草场吗? 中秋节去高明盈香生态园有什么活动?盈香生态园中秋节晚上有演出吗? 2015盈香生态园中秋节活动?高明盈香生态园中秋节门票多少钱? 9月25日起常州机场每周有两班飞机到香港 太行山在哪里_太行山在哪个省_太行山在什么地方 海螺沟在哪里_海螺沟在哪_海螺沟在什么地方 千佛山在哪_济南千佛山在哪里 黄山门票_黄山门票价格多少钱_安徽黄山景区门票优惠 北京特色美食---扒黑猪脸 北京特色小吃---蜂糕 北京旅游时尚之都—世贸天阶 北京特色小吃---焦圈 IDT23S08E-1HDCGI Datasheet IDT23S08E-1HDCGI Datasheet IDT7201LA50J8 Datasheet IDT7201LA50J8 Datasheet ICS843004AG-02LF Datasheet ICS843004AG-02LF Datasheet 欧洲旅游组团 欧洲旅游组团 欧洲旅游组团 深圳出发去欧洲旅游 深圳出发去欧洲旅游 深圳出发去欧洲旅游 跟团到欧洲旅游 跟团到欧洲旅游 跟团到欧洲旅游