美文网首页
2019-03-27

2019-03-27

作者: 程序设计法师 | 来源:发表于2019-03-28 12:51 被阅读0次

Gradle学习网站
https://www.w3cschool.cn/gradle_user_guide/gradle_user_guide-v6kt26h2.html

task hello {
    doLast {
        println 'Hello world!'
    }
}

编译此build.gradle文件,使用命令 gradle -q hello
1.使用gralde androidDependencies 命令可以查看每种buildType下的依赖关系图

微信截图_20190328115923.png
2.如果项目A只想依赖项目B,不想依赖项目B所属的子级依赖关系,可以使用@aar关键字关闭依赖传递 如:com.android.support.print:28.0.0@aar,但是要注意libs目录下的jar文件是不受影响的
此外还可以使用exclude module 排除一个库中引用的其他库,例如aar库A依赖了B和C,此时可以通过以下方式进行依赖
compile('com.xxx.yyy:1.1.1'){
            exclude module:'com.xxx.yyy.bbb:1.1.2'
            exclude module:'com.xxx.yyy.ccc:1.1.3'
}

这样也可以在A库中去除B库和C库的依赖
3.定义全局变量

ext{
    android=[compileSdkVersion:23,buildToolsVersion:'23.0.2']
    dependencies=[supportv7:'com.android.support:appcompat-v7:23.2.0']
    }

然后在每个module中可以这样引用

android{
        compileSdkVersion rootProject.ext.android.compileSdkVersion
        buildToolsVersion  rootProject.ext.android.buildToolsVersion
        }
dependencies {
        compile rootProject.ext.dependencies.supportv7
         }
  1. 优化gradle编译速度
    gradle编译工具本身已经内置了一个性能分析工具profile,通过gradle build -profile即可在根目录的build目录下就会生成一个profile文件
    另外,我们可以通过禁用lint的方式 gradle build -x lint
    或者通过在gradle脚本中动态增加编译参数 project.gradle.startParameter.excludedTaskNames.add('lint')

5.除了task的耗时外,aapt检查也是一个耗时大户,在debug版本可以使用如下代码提高aapt的速度,但是不建议在release版本编译的时候使用

aaptOptions{
  cruncherEnabled=false
}

6.gradle加速
可以在gradle.properties文件中增加如下代码以表示开启gradle的增量编译,增加编译的内存资源到4G

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

同时,在build.gradle中增加如下代码

dexOptions{
  incremental true
      javaMaxHeapSize "4g"
}

7.清理gradle 缓存 使用gradle clean

8.重新刷新全部的依赖库 gradle --refresh-dependencies 通过这个指令可以强制刷新所依赖的库项目,从而获取新的版本库
9.使用gradle本地缓存,有时候公司nexus服务器挂掉,可以使用本地缓存先缓存,否则gradle会因为无法连接服务器而导致编译失败,只需要在Setting-Build-Build Tools-Gradle标签中,选中Offline work并指定默认的.gradle文件夹即可

相关文章

网友评论

      本文标题:2019-03-27

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