Android studio中build.gradle文件格式解析_未完待续

        与Eclipse不同,Android Studio是采用Gradle来构建项目的。Gradle 是一个非常先进强大的项目构建工具,它使用了一种基于 Groovy 领域的特定语言(DSL)来声明项目设置,摒弃了基于 XML(如 Ant 和 Maven)的各种繁琐的配置,接下来我们一起探讨 Android Studio 中强大的项目构建工具 Gradle。

一、简介

Android studio新建的工程中一般包含两个build.gradle文件,一个在工程目录下,一个在app目录下,如下图所示。

 

二、文件格式详解

2.1 工程目录下的build.gradle文件

buildscript {
    repositories {
        //代码托管仓库,很多开源Android项目都将代码托管到jcenter()上,声明此配置后,即可引用 
        //jcenter()上的任何开源项目。同时也可以声明其他托管仓库。
        jcenter()
        //添加maven库地址
        maven{
            url "http://maven.xxx.com/xxx/xxx/xxx"
            credentials {
                username 'xxx'
                password 'xxx'
            }
        }
    }
    dependencies {
        //Gradle 插件及使用版本
        classpath 'com.android.tools.build:gradle:2.3.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
 
allprojects {
    repositories {
        //代码托管仓库
        jcenter()
    }
}
// 运行gradle clean时,执行此处定义的task。
// 该任务继承自Delete,删除根目录中的build目录。
// 相当于执行Delete.delete(rootProject.buildDir)
task clean(type: Delete) {
    delete rootProject.buildDir
}

2.2 app目录下的build.gradle文件

//表明是应用程序的插件,若为库模块,则是'com.android.library'
apply plugin: 'com.android.application'
 
//Android 闭包
android {
    //指定项目的编译版本
    compileSdkVersion 25
    //指定项目的构建工具版本
    buildToolsVersion "25.0.3"
    defaultConfig {
        //指定项目的包名
        applicationId "com.example.qiudengjiao.contentprovider"
        //指定项目最低兼容的 Android 版本
        minSdkVersion 15
        //指定项目的最高兼容 Android 版本
        targetSdkVersion 25
        //指定项目的版本号
        versionCode 1
        //指定项目的版本名
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            //指定是否对项目的代码进行混淆(true:混淆 false:不混淆)
            minifyEnabled false
            //proguardFiles用于指定混淆时使用的规则文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
}

编译版本、最小版本、目标版本

compiledSdkVersion:编译SDK版本是将要编译APP的平台版本。默认情况下它应该设置为SDK中最新的Android可用版本。我们依然可以编译APP来支持更早的版本,但是设置它为最新版本让我们可以使用新功能并优化APP使其在最新版本上拥有更好的用户体验。


minSdkVersion:是新建工程的时候指定的”MinimumSDK version”。它表示APP可以支持的Android SDK的最早版本,意为小于该版本的Android系统上不保证APP正常运行。


targetSdkVersion:表示开发者已经测试过的最高的Android版本。当新版本的Android可用的时候,我们应该在新版本上测试自己的APP并更新这个值以匹配最新版本的API,从而使用新版本的功能。

平台版本号 API 级别 VERSION_CODE(代号) 发布时间
Android 9.0 28 Pie(馅饼 2018年08月
Android 8.1 27 Oreo(奥利奥) 2017年12月
Android 8.0 26 Oreo(奥利奥) 2017年08月
Android 7.1.1 25 Nougat(牛轧糖) 2016年10月
Android 7.0 24 Nougat(牛轧糖) 2016年08月
Android 6.0 23 Marshmallow(棉花糖) 2015年10月
Android 5.1 22 Lollipop(棒棒糖) 2015年03月
Android 5.0 21 Lollipop(棒棒糖) 2014年11月
Android 4.4W 20 KITKAT_WATCH 2014年06月
Android 4.4 19 KitKat(奇巧) 2013年10月
Android 4.3 18 Jelly Bean(果冻豆) 2013年07月
Android 4.2、4.2.2 17 Jelly Bean(果冻豆) 2012年11月
Android 4.1、4.1.1 16 Jelly Bean(果冻豆) 2012年07月
Android 4.0.3、4.0.4 15 Ice Cream Sandwich(冰激凌三明治) 2011年12月
Android 4.0、4.0.1、4.0.2 14 Ice Cream Sandwich(冰激凌三明治) 2011年10月
Android 3.2 13 Honeycomb(蜂巢) 2011年07月
Android 3.1.x 12 Honeycomb(蜂巢) 2011年05月
Android 3.0.x 11 Honeycomb(蜂巢) 2011年02月
Android 2.3.4、2.3.3 10 Gingerbread(姜饼)

2011年02月 

Android 2.3.2、2.3.1、2.3 9 Gingerbread(姜饼) 2010年12月
Android 2.2.x 8 Froyo(冻酸奶) 2010年05月
Android 2.1.x 7 Eclair(泡芙) 2010年01月
Android 2.0.1 6 Eclair(泡芙) 2009年12月
Android 2.0 5 Eclair(泡芙) 2009年10月
Android 1.6 4 Donut(甜甜圈) 2009年09月
Android 1.5 3 Cupcake(纸杯蛋糕) 2009年04月
Android 1.1 2 BASE_1_1 2009年02月
Android 1.0 1 BASE 2008年09月


 

猜你喜欢

转载自blog.csdn.net/wishxiaozhu/article/details/103045328