Android gradle.properties 基础使用和常规配置

1.什么是Gradle?Gradle 是一个开源构建自动化工具,其设计足够灵活,可以构建几乎任何类型的软件。

2.什么是gradle.properties?

在Android中,

1.在使用Android Studio新建Android项目之后,在项目根目录下会默认生成一个gradle.properties文件,它是由IDE自动生成的gradle.properties文件。

2.他是项目级别的Gradle配置文件,gradle.properties里面定义的属性是全局的,可以在各个模块的build.gradle里面直接引用.我们可以在里面做一些Gradle文件的全局性的配置,也可以将比较私密的信息放在里面,防止泄露。

点击android项目里的gradle.properties,他是这样子的

Android gradle.properties 基础使用和常规配置_第1张图片

1、gradle.properties常用功能配置

org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=1280m -Dfile.encoding=UTF-8
#(JVM堆内存大小,要是想运行的快一些,就改大点,整个8192m啥的)

org.gradle.daemon=true
#通过开启守护进程,下一次构建的时候,将会连接这个守护进程进行构建,
#而不是重新 fork 一个 gradle构建进程

org.gradle.configureondemand=true 
#按需加载

org.gradle.parallel=true 
#并行编译

org.gradle.caching=true 
#开启 gradle 缓存

android.enableBuildCache=true
#开启依赖缓存,这个设置可以让Android Studio 会把依赖的 jar 或 arr 缓存到本地,并且把模块名称设置为 hash 值。每次编译生成的缓存在 $HOME/.android/build-cache

android.useAndroidX=true
# 标识当前 module 启用 Androidx ,当把android项目自动迁移到androidX,
AS会自动在这个文件加上这句

android.enableJetifier=true
# 表示将项目中使用的第三方库也迁移到 Androidx

android.injected.testOnly=false
#解决真机无法安装测试包的报错,因为国内一些安卓手机制作商定制的 
#Android 系统不允许安装含带这个属性的测试包。哪怕你使用 -t 参数通过 adb 安装也是不行的,这个很常见

android.useNewApkCreator=false
#声明使用旧的打包器解决 Android Studio 升级 3.6 之后,
#报错 Entry name 'AndroidManifest.xml' collided,
#因此禁用新版本打包工具,使用旧的打包工具

kotlin.incremental=true
kotlin.incremental.java=true
kotlin.incremental.js=true
#kotlin 增量编译

kotlin.caching.enabled=true
#kotlin 编译缓存

kotlin.parallel.tasks.in.project=true
#kotlin 并行编译

kotlin.code.style=official
# Kotlin code style for this project: "official" or "obsolete"


# 优化kapt
# 并行运行kapt1.2.60版本以上支持
kapt.use.worker.api=true
# 增量编译 kapt1.3.30版本以上支持
kapt.incremental.apt=true
# kapt avoiding 如果用kapt依赖的内容没有变化,会完全重用编译内容,省掉#`app:kaptGenerateStubsDebugKotlin`的时间
kapt.include.compile.classpath=false

2、gradle.properties的全局配置

gradle.properties里面定义的属性是全局的,可以在各个模块的build.gradle里面直接引用.当有一些数据我们传到git又不想给别人看的时候,就可以配置到gradle.properties,然后不传这个文件上去,也可以在项目中对一些属性进行统一配置,提高开发效率

1.在app/build.gradle文件中引用

注意:在gradle.properties中定义的属性默认是String类型的,如果需要int类型,需要添加XXX as int后缀。

1.我现在gradle.properties定义好下面新增的四个属性

Android gradle.properties 基础使用和常规配置_第2张图片

 2.然后在我某一个module的build.gradle里就可以调用,可以看到,在第一行通过isModule来让这个模块是作为库还是app运行,在下面的compileSdkVersion那一行的后面加了句 as int 确定他的sdk版本

Android gradle.properties 基础使用和常规配置_第3张图片

2.在java代码或者XML文件中使用

1.现在gradle.properties里添加配置

Android gradle.properties 基础使用和常规配置_第4张图片

2、在app/build.gradle中读取属性,对这些属性进行转化: 上述代码中的

1.buildConfigField方法的是BuildType#buildConfigField,包含三个参数:类型、变量名、变量值。 Java调用时使用BuildConfig.defaultNickName就可以获得其中的值,

例如:

System.out.println("defaultNickName:" + BuildConfig.defaultNickName);

2.resValue方法定义在BuildType#resValue中,也包含三个参数:类型、变量名、变量值。

这是相当于是作为资源来进行调用,string代表的是字符串,对应于res文件下的这些东西:

Android gradle.properties 基础使用和常规配置_第5张图片

 在xml中的调用:


参考地址:里面的知识量好像有点大https://docs.gradle.org/current/userguide/build_environment.htmlicon-default.png?t=M3C8http://Gradle官方地址

你可能感兴趣的:(Android基础知识,Android开发,android,studio,gradle)