Parallel execution,并行执行 Gradle 的 tasks,在你的 gradle.properties 文件添加以下配置:
开启并行编译
//org.gradle.parallel=true
开启守护进程 通过开启守护进程,下一次构建的时候,将会连接这个守护进程进行构建,而不是重新fork一个gradle构建进程
org.gradle.daemon=true
//启用新的孵化模式
org.gradle.configureondemand=true
//开启 Gradle 缓存
org.gradle.caching = true
配置阶段
减少不必要的 apply plugin,按需使用。如果某个插件不是所有的模块都要使用的情况下,就不要使用 allprojects{} 的方式。
在配置阶段避免执行一些耗时的工作,比如 IO *** 作或者网络请求等
Daemon
在老版本的 Gradle 开启 Daemon 配置,而在 3.0 以后的 Gradle 版本是默认支持的。
调整 daemon’s 的堆大小,默认是 1 GB,如需调大,可在你的 gradle.properties 设置:
org.gradle.jvmargs=-Xmx2048M
使用 implementation 替代 compile,有效的减少编译时的依赖项,需升级至 Gradle 3.4 版本
增量编译,Gradle 可以将依赖关系分析到单个类级别,以便仅重新编译受更改影响的类。 增量编译是 Gradle 4.10 以来的默认编译。 在老的版本中,可以像这样激活它:
tasks.withType(JavaCompile) {
options.incremental = true
}
使用最新版本的工具
避免编译不必要的资源,比如不必要的语言本地化,
你可以只指定一种语言资源和屏幕适配,如以下示例所示:
android {
...
productFlavors {
dev {
...
// The following configuration limits the "dev" flavor to using
// English stringresources and xxhdpi screen-density resources.
resConfigs "en", "xxhdpi"
}
...
}
}
使用 WebP 格式的图片,有效减少图像文件大小,而不必执行构建时压缩,可以加快你的构建
关闭 PNG crunching,加快构建速度通过禁用自动图像压缩,Gradle 3.0 版本以上在 debug 的构建类型下是默认关闭的。如需手动配置其他构建类型,如下示例:
android {
buildTypes {
release {
// Disables PNG crunching for the release build type.
crunchPngs false
}
}
// If you're using an older version of the plugin, use the
// following:
// aaptOptions {
// cruncherEnabled false
// }
}
官方说明
官方说明
一、Gradle简介
Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
二、配置步骤如下:
1、资源下载:
Grandle官网下载Gradle
提示:如果只是运行可以只下载bin,为了扩展开发还是下载all。
2、下载完毕后,解压zip至安装目录即可,例如:D:\Program Files
3、设置环境变量,需要设置如下2个环境变量
1、添加GRADLE_HOME指向gradle的安装目录的根目录
GRADLE_HOME=D:\Program Files\gradle-2.0
2、Path变量添加gradle的bin目录
D:\Program Files\gradle-2.0\bin
4、以上步骤设置完毕,打开cmd,运行gradle -v看到gradle的版本信息,配置完成。
5.打开Eclipse,Help-->Install new software,输入http://dist.springsource.com/release/TOOLS/gradle
如果提示找不到地址,估计是被墙掉了,需要FQ。如果找得到地址,选择安装项,然后一直下一步,直到安装完毕,重启Eclipse即可。
6.创建一个web项目,在根目录下创建一个build.gradle文件
build.gradle文件内容如下:
import org.gradle.plugins.ide.eclipse.model.Facet
apply plugin: 'maven'
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
sourceCompatibility = 1.8 // 设置 JDK 版本
webAppDirName = 'WebContent' // 设置 WebApp 根目录
sourceSets.main.java.srcDir 'src' // 设置 Java 源码所在目录
// 设置 maven 库地址
repositories {
mavenCentral() // 中央库
maven { url 'http://localhost:8081/nexus/content/groups/public' } // 自定义库地址
}
// 设置依赖
dependencies {
providedCompile 'javax.servlet:servlet-api:2.5' // 编译期
providedRuntime 'javax.servlet:jstl:1.2' // 运行时
}
// 设置 Project Facets
eclipse {
wtp {
facet {
facet name: 'jst.web', type: Facet.FacetType.fixed
facet name: 'wst.jsdt.web', type: Facet.FacetType.fixed
facet name: 'jst.java', type: Facet.FacetType.fixed
facet name: 'jst.web', version: '2.5'
facet name: 'jst.java', version: '1.8'
facet name: 'wst.jsdt.web', version: '1.0'
}
}
}
提示:项目有个G,正常情况下是没有的,需要右键项目 "Configure->Convert to Gradle Project..",稍等下就OK了,就能像我有这个图标G,
添加依赖包:需要右键项目"Gradle->Refresh All","Gradle->Dependency->Management".
8、可能报错
Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at http://gradle.org/docs/2.2.1/userguide/gradle_daemon.html
Please read the following process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Could not fetch model of type 'HierarchicalEclipseProject' using Gradle distribution 'https://services.gradle.org/distributions/gradle-2.2.1-bin.zip'.
解决方法
1、定位到目录 C:\Users\<username>\.gradle
2、创建文件gradle.properties
内容:org.gradle.jvmargs=-Xmx512m
3、重启你的Android Studio项目,即可。
9、设置gradle下jar包的保存地址, "window->preferences->gradle",如下:
用gradle构建时,常有需要去查看其网络请求,怎样抓取其网络请求呢?下面介绍gradle代理到charles上的抓包办法。
由于gradle是运行在jvm上,所以配置jvm的代理方法,即是实现了对gradle的代理,代理设置分为步:
在gradle上设置jvm的代理有两种方式
gradle在运行时自动会将属性设置加载到jvm中。
代理设置完成后,发现http请求是可以在charles中正常代理查看的,但https请求却无法代理成功。原因是jvm上https的ssl握手环节证书验证不通过。由于Charles是以中间人的方式代理https请求,所以需要将charles的证书添加到jvm信任证书的列表中去。
java工具包中集成了证书管理工具keytool,只需要用它将代理工具的证书(charles证书)导入到jvm证书信任列表中即可。
导入方法:
JAVA_HOME是系统的java的安装目录。
jvm证书仓库的默认密码是“changeit”,如果修改过,请用重设的密码替换它。
certAliasName 是你给导入的证书起的名字。
certPath.cert 是导入的证书路径
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)