如何提升Gradle的编译速度

发布时间:2021-06-17 11:22:03 作者:Leah
来源:亿速云 阅读:419

如何提升Gradle的编译速度,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1. 在user/.gradle文件下创建gradle.properties文件, 并在中写上org.gradle.daemon=true , 保存.

如何提升Gradle的编译速度

2. 设置studio, 打开setting >> gradle>> 勾选offine work; 打开离线编译;如下图:

如何提升Gradle的编译速度

3.设置JAVa虚拟机的运行内存等

在项目的根目录中找到gradle.properties文件, 位置如下图, 并设置相关参数, 这一项设置在网上很多人提到, 我就不多说了。

但是有一点值得注意的是, 不能将java最大的运行内存设置过高, 否则会引起第二次启动时启动不了, 会报内存不足。

如何提升Gradle的编译速度

4. 硬件提升

这个根据自己的情况而定。 如果可能的话, 建议使用台试机, 扩展性强。 

我给大家推荐一下配置吧:

4.1 使用双路主板,配置两颗CPU,  可以使用工作站的, 也可以用服务器的, 建议考虑工作站的。 现在市场上有超微的, 华硕, 技嘉等等都双路工作站主板

4.2 使用NVME 固态硬盘。 例如三星p961, 可以通过PCI-E转nvme 转接卡, 将硬盘安装到主板的PCI-E插槽上, 峰值速度达到2000M/s,这可不是一般的sata固态硬盘所能达到的速度。 

注意:这种硬盘并不支持win7系统, 需要win8.1 win10系统才能识别。 

4.3 选用多条内存。 上面推荐使用了双路主板, 最新该类型主板支持ddr4内存, 且共有八通道,使用4*8 = 32 G配置,可以将内存性能发挥至极至。

5.  优化gradle中的渠道配置

这是我所讲的重点, 如果对您有帮助,请注意看

在build.gradle 检查渠道数量, 如下图:

如何提升Gradle的编译速度

备注:在网上有很多贴子写到变种productFlavors,让buildtype与productFlavors结合使用, 达到不同版本不同渠道配置不同的参数, 依赖的libs也进行相关设置的编译。 例如app依赖了Alibs, 并且需要Alibs能够识别buildtype, 在app选择测试版时, Alibs也编译了它的debug中参数。。

通过多次实践发现, 这种变种flavors, 会导致编译速度变慢, 尤其是渠道较多时,这种

渠道名BuildTypeCompile project(path:':libs名字',configuration:'渠道名BuildType')

这种会使编译速度更慢。 所以不推荐这种实现方式, 如果遇到这种需求,请尝试其它方法解决。

言归正转 优化Gradle 

步骤一: 设置全局变量

方法一:可以设置项目的全局变量。 在项目根目录下的build.gralde中的

allprojects下添加ext{...}

我添加了三个常量, 因为我的版本需要打三个不同名字的应用。如果您的项目中没有该需求,只需设置一个就行了

ext {
 isHtgPack = false
 isOasPack = false
 isGeniusPack = false
}

方法二: 在渠道所在build.gradle中配置常量。 添加ext{...}

注意:

1.根据gradle语法, 常量需要在调用前声明。
 2.设置常量时不能用def boolean 等修饰 ;它会自动识别它的数据类型;

如何提升Gradle的编译速度

步骤二: 代码设置渠道

gradle是基于java, 所以它的很多语法和java一致,对写android的哥们更易上手

在android {}中设置渠道, 添加 一行代码。将渠道 

if(isHtgPack) {
//打包时需的渠道(所有渠道)
。。
productFlavors {
huawei {}
360 {}
...
}
}else {
//只配置一个渠道
productFlavors{
 textFlavors{}
}
}

在需要打包时将常量的值更改一下就好了,将false更改为true就好了。

如何提升Gradle的编译速度

关于如何提升Gradle的编译速度问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. QT设置多核编译,加快编译速度
  2. gradle风格的groovy代码

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

gradle

上一篇:PHP排序算法中归并排序Merging Sort的示例分析

下一篇:PHP排序算法之快速排序Quick Sort及其优化算法的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》