AS中build.gradle文件配置讲解

来源:互联网 发布:福昕阅读器for mac 编辑:程序博客网 时间:2024/05/21 21:36

module中的build.gradle的文件配置。
一般主要包括如下根节点:
这里写图片描述

apply plugin

必须放在第一行,它可以指定这个module是一个应用(用 apply plugin: ‘com.android.application’ 配置),或是一个库(用 apply plugin: ‘com.android.library’ 配置)。

allprejects

依赖中一些lib的仓储位置。有些lib的仓储位置是一些特别的地址,在这里进行设置。
eg:

    repositories {        jcenter()        maven {            url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'        }        maven {            url "https://oss.sonatype.org/content/repositories/snapshots/"        }    }

dependencies

项目中的依赖库,在这里设置。

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

表示 编译时,可以依赖包括libs下的jar包。如果项目中有jar包,必须添加此行才能依赖jar

compile files('libs/android-async-http-master.jar')

表示依赖libs下的android-async-http-master.jar


compile project(':library')

表示 依赖本地的library类型的叫做 library 的 module。


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

表示依赖远程库 com.android.support:appcompat-v7:21.0.3。

主要讲讲 android 根节点

android节点主要包含一下节点:

android {    compileSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION as int    buildToolsVersion ANDROID_BUILD_TOOLS_VERSION    defaultConfig {    }    buildTypes {    }    compileOptions {    }    sourceSets {    }    lintOptions {    }    productFlavors {        flavor1 {        }        flavor2 {        }    }    signingConfigs {        release {            storeFile file(×.keystore)            storePassword ×××            keyAlias ××××            keyPassword ×××        }    }}

我们来逐一认识下:

compileSdkVersion 21buildToolsVersion 21.1.2

这两个是指定的编译的SDK版本,以及编辑工具版本。


defaultConfig
这个是默认配置,相当于eclipse中manifest中的一些基本配置,buildType中也将自动继承。
它里面可以放入很多配置,如下面buildTypes/release的一些配置也可放入其中:

defaultConfig {    applicationId com.example.app.application    minSdkVersion 15    targetSdkVersion 21    versionCode 1    versionName 1.0    ndk {        moduleName app        cFlags -DANDROID_NDK -D_RELEASE        ldLibs m, log, jnigraphics        abiFilters all    }}

这里,如果是apk项目必须要applicationId 配置,表示的是包名。但如果是library类型的则不需要。
下面一次是:最小sdk版本15,目标sdk版本21,代码版本1,版本名称1.0等apk的基本信息。
ndk部分,作用是可以直接编译ndk代码,不需要自己执行。


buildType
这里进行编译配置,系统默认有release(发布配置)和debug(调试配置)

  buildTypes {    release {        minifyEnabled true // Enables code shrinking for the release build type.        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        signingConfigs signingConfigs.release    }    debug{    }  }

其中,release 能进行缩量混淆配置(减小apk体积)minifyEnabled true,以及 进行混淆文件设置 proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’,还能对签名工具进行配置 signingConfigs signingConfigs.release.


compileOptions

compileOptions {    sourceCompatibility JavaVersion.VERSION_1_7    targetCompatibility JavaVersion.VERSION_1_7}

对java的版本配置,以便使用对应版本的一些新特性。


sourceSets
重新指向源码路径

    sourceSets {//目录指向配置        main {            manifest.srcFile 'AndroidManifest.xml'//指定AndroidManifest文件            java.srcDirs = ['src']//指定source目录            resources.srcDirs = ['src']//指定source目录            aidl.srcDirs = ['src']//指定source目录            renderscript.srcDirs = ['src']//指定source目录            res.srcDirs = ['res']//指定资源目录            assets.srcDirs = ['assets']//指定assets目录            jniLibs.srcDirs = ['libs']//指定lib库目录        }        debug.setRoot('build-types/debug')//指定debug模式的路径        release.setRoot('build-types/release')//指定release模式的路径    }

lintOptions

lintOptions {    abortOnError false}

这个设置编译的lint开关。程序在build的时候,会执行lint检查,有任何错误或者警告提示,都会终止构建,我们可以将其关掉。


productFlavors

  productFlavors {    free {      applicationId 'com.example.myapp.free'    }    paid {      applicationId 'com.example.myapp.paid'    }  }}

productFlavors块,你可以配置多个产品风味(免费版、付费版、不同渠道版)。这里你可以创建不同版本的app,通过重写defaultConfig{}的设置。productFlavors是可选的。默认情况下,系统不会自动创建。每个flavor都可以自己的的application id。


signingConfigs

signingConfigs {    release {        storeFile file(×.keystore)        storePassword ×××        keyAlias ××××        keyPassword ×××    }}

包签名的配置,你可以设置具体的签名文件,签名密码等等


更多内容请看:Android官方AS配置文档地址:https://developer.android.com/studio/build/index.html

0 0