gradle

[TOC]

gradle

1.gradle是一种自动构建化语言,目前是android的默认构建工具,是一个编程框架

RenderScript 是 C++的代码,
通过 打包 资源文件,NDK java/kotlin xml RenderScript

gradle是groovy语言来实现的. 坚持把简单事情弄好

./gradlew assembleDebug

把问题的思路,写下来,然后再问问题,把想法说清楚,问问题要讲究技巧.先问一下,别人有没有空.

语言 groovy
语言 groovy,先将其编译成java类的字节码,然后通过jvm来执行这个java类
支持的环境 androidstudio和命令行,命令行方便调试
构建粒度 支持多个project和多个版本,多个构建类型
可扩展性 有丰富的api和插件框架
其他构建工具 ant,maven

开发 打包 上传 测试 发布
理解 -> 解决 -> 应用 -> 分享

哪个工具在哪里有很多star ,分享 可以获取很多 star

Warpper 工具包, gradlew -> gradle warpper 的缩写 ;是gradle的一个工具包

./gradlew assembleDebug
gradlew.bat 是批处理文件 gradlew是给liunx上面使用的
在home目录下, 有个 .gradle,
cd gradle open . 可以打开一个行的目录,
gradle版本里面的api不兼容,所以gradle通过gradlewrapper去解决了这个问题

gradle的配置参数

  • gradle warpper 是什么,

closure groovy的闭包,

groovy的闭包(closure)

groovy的闭包
Buildscript({}) 就是一个函数调用,传入了一段代码,就是闭包的一段代码
./gradlew assembelDebug

BuildScript 配置需要哪些插件,以及这些插件在哪个仓库下载

gradle dsl

仓库,就是存储jar包的地方,放aar的地方
settings.gradle 是一开始执行的文件, 多维度打包,多渠道打包

1
2
3
4
5
if(isGrade) {
include 'app','lib1','lib2'
} else {
include 'app'
}

自己去开发gradle 插件,
complitionName
compile 在android studio 3.0抛弃掉了
compile = 现在的 api

implementation 表示只给自己用,别人不需要, 可以一定程度提高编译速度

gradle = class
api = public
implementation = private

gradle打包慢

1
https://maven.aliyun.com/nexus/content/groups/public/

gradle打包的终结解决方案

init

加入了个钩子 hook
buildersrc目录下面放gradle插件

通过extention来建立桥梁

def

assert 语句
括号是可选的

单引号,就是普通的字符串

“” 可以用${version} 变量

project上面有个方法叫 apply