diff --git a/README.md b/README.md index f97b5de..188dd43 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,13 @@ Android Notes ##### Gralde Plugin、Groovy -[Gralde Plugin 入门指南](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle%20Plugin.md) +[Gralde Plugin 入门指南](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle_Plugin_Guide.md) -[Gralde Plugin 实践之 TinyPng Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gralde%20Plugin%20%E5%AE%9E%E8%B7%B5%E4%B9%8B%20TinyPng%20Plugin.md) +[Gralde Plugin 实践之 TinyPng Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/TinyPngPlugin.md) + +《Android Gradle 权威指南读书笔记》 + +​ [基础知识相关](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Android%20Gradle%20%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0%E4%B9%8B%E4%B8%80.md) ##### JVM、ART 相关 diff --git a/blogs/Android/Gradle/一篇文章读完 《Android Gradle 权威指南》.md b/blogs/Android/Gradle/Android Gradle 权威指南/读书笔记之一.md similarity index 90% rename from blogs/Android/Gradle/一篇文章读完 《Android Gradle 权威指南》.md rename to blogs/Android/Gradle/Android Gradle 权威指南/读书笔记之一.md index 47bb794..056609c 100644 --- a/blogs/Android/Gradle/一篇文章读完 《Android Gradle 权威指南》.md +++ b/blogs/Android/Gradle/Android Gradle 权威指南/读书笔记之一.md @@ -1,5 +1,5 @@ --- -一篇文章读完《Android Gradle 权威指南》 +《Android Gradle 权威指南》读书笔记(一)基础知识 --- #### 目录 @@ -23,7 +23,7 @@ #### 前言 -在写完 [Gradle Plugin 入门指南](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle Plugin.md) 和 [Gradle Plugin 实践之 TinyPng Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gralde%20Plugin%20%E5%AE%9E%E8%B7%B5%E4%B9%8B%20TinyPng%20Plugin.md) 之后,总会有一些疑问,如果你仔细阅读过这两篇文章,你甚至会发现文章还有一些错误的说法,比如以下命令中 -q 参数的含义: +在写完 [Gradle Plugin 入门指南](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle_Plugin_Guide.md) 和 [Gradle Plugin 实践之 TinyPng Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/TinyPngPlugin.md) 之后,总会有一些疑问,如果你仔细阅读过这两篇文章,你甚至会发现文章还有一些错误的说法,比如以下命令中 -q 参数的含义: ``` ./gradlew task -q build @@ -429,3 +429,32 @@ doFirst 也是添加到第一个,那为什么不是 doSelf 在 doFirst 之前 ##### 任务的 onlyIf 断言 +断言就是一个条件表达式,Task 有一个 onlyIf 方法,它接受一个闭包作为参数,如果改闭包返回 true 则该任务执行,否则跳过。这有很多用途,比如控制程序什么情况打什么样的包等。 + +比如: + +```groovy +task myCustomTask << { + println 'myCustomTask Start~' +} + +myCustomTask.onlyIf{ + project.hasProperty("build_type") +} +``` + +我们判断的条件是是否有 build_type 属性,所以当我们还是按往常执行如下命令: + +```groovy +./gradlew task -q myCustomTask +``` + +是不会有任何输出的,那我们怎么做才能会输出呢? + +```groovy +./gradlew task -q -Pbuild_type=debug myCustomTask +``` + +加一个参数就好啦,就可以控制任务是否执行了。 + +命令行中 -P 的意思是为 Project 指定 K-V 格式的属性键值对,使用格式为 -PK=V。 \ No newline at end of file diff --git a/blogs/Android/Gradle/Gradle Plugin.md b/blogs/Android/Gradle/Gradle_Plugin_Guide.md similarity index 100% rename from blogs/Android/Gradle/Gradle Plugin.md rename to blogs/Android/Gradle/Gradle_Plugin_Guide.md diff --git a/blogs/Android/Gradle/Gralde Plugin 实践之 TinyPng Plugin.md b/blogs/Android/Gradle/TinyPngPlugin.md similarity index 92% rename from blogs/Android/Gradle/Gralde Plugin 实践之 TinyPng Plugin.md rename to blogs/Android/Gradle/TinyPngPlugin.md index 827f4e8..eb3814f 100644 --- a/blogs/Android/Gradle/Gralde Plugin 实践之 TinyPng Plugin.md +++ b/blogs/Android/Gradle/TinyPngPlugin.md @@ -4,7 +4,7 @@ Gralde Plugin 实践之 TinyPng Plugin #### 前言 -在上一篇文章中,我们熟悉了如何去实现一个[自定义的 Gradle Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle%20Plugin.md),本来按照计划这篇文章是讲 Transform API,但是考虑到学完新知识最好能实践一下,之前也讲到可以利用 TinyPng 在构建项目的时候批量压缩 res 下的所有 png 图片,今天我们就来实践一下,这个并不涉及到 Transform API 的使用,但是需要熟悉 Groovy 一些常见的操作,比如 Extensions、 Json 的解析和生成等,整个项目很简单,代码并不多,大胆 fork [TinyPngPlugin](https://github.com/surpriseprojects/TinyPngPlugin) 吧。 +在上一篇文章中,我们熟悉了如何去实现一个[自定义的 Gradle Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle_Plugin_Guide.md),本来按照计划这篇文章是讲 Transform API,但是考虑到学完新知识最好能实践一下,之前也讲到可以利用 TinyPng 在构建项目的时候批量压缩 res 下的所有 png 图片,今天我们就来实践一下,这个并不涉及到 Transform API 的使用,但是需要熟悉 Groovy 一些常见的操作,比如 Extensions、 Json 的解析和生成等,整个项目很简单,代码并不多,大胆 fork [TinyPngPlugin](https://github.com/surpriseprojects/TinyPngPlugin) 吧。 #### 实现方式 diff --git a/blogs/Android/Gradle/Gradle Plugin 之 Transform API.md b/blogs/Android/Gradle/Transform API.md similarity index 86% rename from blogs/Android/Gradle/Gradle Plugin 之 Transform API.md rename to blogs/Android/Gradle/Transform API.md index cef71d1..fb6c78a 100644 --- a/blogs/Android/Gradle/Gradle Plugin 之 Transform API.md +++ b/blogs/Android/Gradle/Transform API.md @@ -4,7 +4,7 @@ Gradle Plugin 之 Transform API #### 前言 -在前面两篇文章中,我们熟悉了 [Gradle Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle Plugin.md) 的编写,同时也实践了一下,写了一个 [TinyPngPlugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gralde Plugin 实践之 TinyPng Plugin.md) ,利用 TinyPng 在打包时压缩 res 下的所有的 png 图片,这是一个非常好的实践,希望你也能掌握。 +在前面两篇文章中,我们熟悉了 [Gradle Plugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/Gradle_Plugin.md) 的编写,同时也实践了一下,写了一个 [TinyPngPlugin](https://github.com/Omooo/Android-Notes/blob/master/blogs/Android/Gradle/TinyPngPlugin.md) ,利用 TinyPng 在打包时压缩 res 下的所有的 png 图片,这是一个非常好的实践,希望你也能掌握。 本篇文章接着来讲解 Transfrom API,Transform 是用来对 class 转 dex 文件之前的 class 文件进行操作。