首页 > 系统 > Android > 正文

android studio 之Gradle基本配置

2019-11-09 15:37:34
字体:
来源:转载
供稿:网友
在使用android studio的时候gradle经常会出现各种各样的配置问题,小编对gradle文件的基本配置做了一些基本整理,希望对各位有用
buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:1.5.0'}}buildscript中的声明是gradle脚本自身需要使用的资源。可以声明的资源包括依赖项、第三方插件、maven仓库地址等。而在build.gradle文件中直接声明的依赖项、仓库地址等信息是项目自身需要的资源。虽然gradle支持开箱即用,但是如果你想在脚本中使用一些第三方的插件、类库等,就需要自己手动添加对这些插件、类库的引用。而这些插件、类库又不是 直接服务于项目的,而是支持其它build脚本的运行。所以你应当将这部分的引用放置在buildscript代码块中。gradle在执行脚本时,会优 先执行buildscript代码块中的内容,然后才会执行剩余的build脚本。

buildscript代码块中的repositories和dependencies的使用方式与直接在build.gradle文件中的使用方 式几乎完全一样。唯一不同之处是在buildscript代码块中你可以对dependencies使用classpath声明。该classpath声 明说明了在执行其余的build脚本时,class loader可以使用这些你提供的依赖项。这也正是我们使用buildscript代码块的目的。

而如果你的项目中需要使用该类库的话,就需要定义在buildscript代码块之外的dependencies代码块中

android {    compileSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION as int //指定的编译SDK    buildToolsVersion ANDROID_BUILD_TOOLS_VERSION   //指定的编译版本    defaultConfig {    }    buildTypes {            }    compileOptions {    }    sourceSets {    }    lintOptions {    }    PRoductFlavors {        flavor1 {        }        flavor2 {        }    }    signingConfigs {        release {            storeFile file(×.keystore)            storePassWord ×××            keyAlias ××××            keyPassword ×××        }    }}defaultConfig:默认配置也相当于全局配置 ,里面的配置buildTypes将自动继承defaultConfig {    applicationId com.example.qiujuer.application    minSdkVersion 15    //最小的sdk版本    targetSdkVersion 21     //目标sdk版本    versionCode 1    versionName 1.0     ndk {        moduleName genius        cFlags -DANDROID_NDK -D_RELEASE        ldLibs m, log, jnigraphics        abiFilters all    }}在这里,首先进行了一个 applicationId 配置,该配置不是必须,但 库类型的 Model 将无此配置。ndk部分可直接编译NDK代码buildTypes :这里配置的是编译配置 有一个release那么也有debug部分,两部分的配置是一样的。在这里进行代码混淆,所以有一个混淆开关,以及混淆文件,文件有两种无论哪种都行
buildTypes {    release {        minifyEnabled truezipAlignEnabled true    shrinkResources  true   删除无效的resource,必须和minifyEnabled一起使用proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'}    debug {        minifyEnabled falsezipAlignEnabled falseshrinkResources  falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'}
applicationVariants.all { variant ->    variant.outputs.each { output ->def outputFile = output.outputFileif (outputFile != null && outputFile.name.endsWith('.apk')) {def fileName = "filmticket_V${defaultConfig.versionName}_${releaseTime()}_1_A_common_unsigned.apk"output.outputFile = new File(outputFile.parent, fileName)        }    }}}complieOptions:对java版本的配置,以便使用对应版本的新特性sourceSets:对源码的设置,从eclipse中迁移过来的代码,都需要设置sourceSets {    main {        manifest.srcFile 'AndroidManifest.xml'        java.srcDirs = ['src']        resources.srcDirs = ['src']        aidl.srcDirs = ['src']        renderscript.srcDirs = ['src']        res.srcDirs = ['res']        assets.srcDirs = ['assets']        jniLibs.srcDirs = ['libs']    //引用.so文件时设置    }f}LintOptionslintOptions {    abortOnError false}这个应该放到最后,程序在build的时候会进行Lint检查,有任何错误或者警告的提示,都会终止构建,将其关掉就OK了
productFlavors:设置一些产品发布的东西,如果要发布到不同的渠道,不同渠道的包名不同,可以在里面进行设置甚至可以设置不同的 AndroidManifest.xml文件
signingConfigs:签名配置signingConfigs {    release {        storeFile file(×.keystore)        storePassword ×××        keyAlias ××××        keyPassword ×××    }}这个可以不用自己创建,你可以点击 build/generate signed apk,在其中选择你的文件或者创建签名文件,设置密码等等,然后选择记住密码,然后就会看见有这个配置了。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表