AS中build.gradle文件配置讲解

本文详细介绍了Android Studio中build.gradle文件的配置,包括apply plugin、allprojects、dependencies以及android节点的主要内容,如编译SDK版本、defaultConfig、buildTypes、productFlavors等,帮助理解并设置项目构建选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 21
buildToolsVersion 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值