美文网首页
Gradle基础介绍一

Gradle基础介绍一

作者: 苏简笔记 | 来源:发表于2016-09-04 03:13 被阅读135次

前言:文章内容摘自Android群英传:神兵利器。这里做一些简要的使用笔记。

Gradle是基于Groovy脚本语言进行构建,并通过DSL(Domain Specific Language:领域特定语言)语言进行描述和控制构建逻辑。

新建工程的项目结构如下图:

工程 结构图.png

Gradle在根目录中会有一个项目全局的build.gradle文件。在每一个模块下,同样会有针对该模块的build.gradle文件。

全局的build.gradle文件
Paste_Image.png
模块的build.gradle文件
Paste_Image.png Paste_Image.png

关于Gradle的一些基本配置

构建全局配置

全局参数

在全局的build.gradle文件中,通过 ext 领域可以制定全局的配置信息。然后再具体的Module中通过rootProject.ext就可以引用所有的全局参数。
如图:

  1. 全局的gradle.build中声明全局变量


    全局的gradle.build
  2. 在具体的Module中引用全局变量,方便管理


    Module的build.gradle
动态构建参数

脚本之所以为脚本就是可以在脚本中写代码,以便动态的控制编译过程,可以动态的去控制构建的参数
比如:

Paste_Image.png
构建buildTypes

通过配置不同的buildTypes,从而可以生成不同的Apk,比如:

Paste_Image.png Paste_Image.png

构建类型的参数以及不同类型下面的默认值:

Paste_Image.png
构建signingConfigs
  • 首先申请签名,放在一个英文目录下,然后如图创建一个配置文件
Paste_Image.png

按照图中格式声明key的存储路径,以及密码别名等信息。

  • 其次在local.properties中对配置文件的路径进行声明,然后再app的build.gradle中进行读取。
Paste_Image.png
  • 配置signingConfigs
Paste_Image.png
一些可选配置

lintOptions

Paste_Image.png

compileOptions
指定java的编译版本。通常是为了使用新版本中的一些新特性。

Paste_Image.png

自动生成我们需要的命名规则的apk文件
把一下代码块放入android领域中即可。

Paste_Image.png
applicationVariants.all{variant->    variant.outputs.each {output->        if (output.outputFile!=null&&        output.outputFile.name.endsWith('.apk') &&        'release'.equals(variant.buildType.name)){            def apkFile=new File(output.outputFile.getParent(),"xxx_v${variant.versionName}_release.apk")            output.outputFile=apkFile        }    }}

为不同的版本添加不同的代码
为不同的版本添加不同的代码功能,比如Log文件的开关。在debug包中打开日志打印功能,在release包中关闭日志打印功能。

配置一个全局变量,给不同的版本设置不同的值。

Paste_Image.png

双击shift查看BuildConfig文件:

Paste_Image.png

可以看到我们自定义的属性已经在BuildConfig文件中就可以查看到了。
然后通过这个类就可以在代码中获取到不同的buildType所对应的值了。

Paste_Image.png

步骤:
通过制定buildConfigField的三个参数——类型,名称,值。可以将一个变量设置到不同的buildType中去。打开系统的BuildConfig类,可以看到不同的buildType下对应的BuildConfig中的值。

Paste_Image.png

注意:
如果是String类型的字符串,如果要写入字符串的时候需要加入转义字符

Paste_Image.png

也可以继续使用变量

Paste_Image.png

资源文件同样可以进行分版本设置属性
下面演示为不同的版本设置不同的AppName

Paste_Image.png

同时在defaultConfig领域中添加默认的配置:

Paste_Image.png

在AndroidManifest中还是跟以前一样引用

Paste_Image.png

然后需要删除string.xml中原本的app_name的属性删掉。在编译的时候会将配置进行merge,存在两份相同的属性值就会发生冲突。

相关文章

  • Gradle基础介绍一

    前言:文章内容摘自Android群英传:神兵利器。这里做一些简要的使用笔记。 Gradle是基于Groovy脚本语...

  • Gradle基础介绍

    什么是 Gradle ? 所谓构建工具就是对你的项目进行编译、运行、签名、打包、依赖管理等一系列功能的合集,传统的...

  • 小码哥Android培训-Gradle 入门到精通(一)

    前言 Gradle详解内容将分篇介绍,这里首先介绍Gradle的基础知识和项目结构。 1 Gradle 安装 gr...

  • Gradle 基础知识与原理(2)

    了解了 Gradle 的前世,现在咱们来看 Gradle 的今生,本文主要介绍 Gradle 的一些基础知识与原理...

  • Gradle基础介绍二

    Gradle多项目依赖 Jar包依赖选择要依赖的Jar包,复制到对应模块的libs下面。 添加依赖方法一:直接右键...

  • Gradle系列之构建脚本基础

    前面两篇文章分别介绍了 Gradle 基础知识以及 Groovy 相关基础知识,这也是学习 Gradle 所必需了...

  • Hook Android Gradle插件修改编译后的dex

    本文着重介绍如何Hook Android Gradle插件的实现,涉及到的Gradle以及Groovy基础会稍微提...

  • Gradle系列6--内置插件

    Gradle系列基础上,本文以apply plugin:'java'为例介绍Gradle内置的插件及其应用原理解析...

  • Gradle 之 Android 中的应用

    在上一篇文章中 Gradle 之语言基础 Groovy 主要介绍了 Groovy 的基础语法(如果没有 Groov...

  • 第四章 Gradle任务

    上一章我们已经介绍了Gradle脚本的基础,在其中我们也强调了Gradle中最要的Projects和Tasks这两...

网友评论

      本文标题:Gradle基础介绍一

      本文链接:https://www.haomeiwen.com/subject/xrrlettx.html