org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html
添加构建依赖项 参考文档 : https://developer.android.google.cn/studio/build/dependencies
TestOptions ( build.gradle#android#testOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.TestOptions.html
org.gradle.api.Task 配置 ( Gradle 任务类型 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Task.html
LibraryExtension ( Library 依赖库的 build.gradle#android 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.LibraryExtension.html
Task#finalizedBy 函数 的作用是为 Gradle 任务 设置任务执行完毕后执行的任务 ;
创建 Gradle 插件 , 一般是在 Android Studio 或者 IntelliJ IDEA 中 , 创建一个插件模块 , 这里以 AS 中为例 ;
参考 Android Gradle 插件内容 , 将 Android Studio 的 Project 面板中的 External Libraries 展开 ,
在之前的 【Android Gradle 插件】自定义 Gradle 插件模块 ⑤ ( 完整总结 ) ★★★ 博客中 , 将自定义 Gradle 插件的 jar 包发布到了本地 Maven 仓库 , 效果如下 : " C:\Users\octop.m2\repository " 目录中的内容如下 :
帮助android UI实现动画特效 http://www.apkbus.com/android-79595-1-1.html 帮助android应用程序实现动画特效 http://www.apkbus.com/android-79775-1-1.html cocos2d-x初探学习笔记(8)--场景特效 http://www.apkbus.com/android-99235-1-1.html Android 常用图片特效处理源码 http://www.apkbus.com/android-99723-1-
在上一篇博客 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ⑦ ( 自定义 Gradle 插件导入方式 | buildSrc 插件导入 | 构建脚本中自定义插件 | 独立文件 ) 中 , 总结了在 Android Studio 工程中 自定义 Gradle 插件 , 并在 build.gradle 构建脚本 中导入插件的代码 ;
UnitTestOptions ( build.gradle#android#testOptions#unitTests ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.TestOptions.UnitTestOptions.html
在 Gradle 面板 中的 自定义 Gradle 插件的 Module 模块 下 , 有 documentation 任务分组 , 其中有
BaseExtension 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.BaseExtension.html
也可以 通过 project.ext.hello 访问该扩展属性 , 代码如下 :
如果执行一个 Gradle 任务 , 该任务名称比较长 , 如 compileDebugAndroidTestSources 任务 ,
BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html
在 buildSrc 模块 中的 src/main/groovy 目录 下 , 创建 MyPlugin.groovy 代码文件 作为插件的主要代码 , 代码如下 :
分组是在 org.gradle.api.Project 中的 configurations 中配置的 ,
首先 , 在 " build.gradle#android#buildTypes#multiDexEnabled " 处配置 多 dex 机制 启用 ;
Task#dependsOn 函数的作用是为 Gradle 任务设置依赖任务 , 执行该任务前 , 依赖任务必须被满足 ;
Sonatype 官方网站 : https://www.sonatype.com/
Sonatype Nexus 安装目录为 : D:\001_Develop\043_Sonatype_Nexus\nexus-3.27.0-03-win64\nexus-3.27.0-03
如果 Gradle 任务 A 的执行 是在 Gradle 任务 B 执行的基础上的 , 那么可以将任务 B 设置为 任务 A 的依赖 ;
ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
参考 android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.Splits.html 文档 ;
点击 Android Studio 右侧的 Gradle 面板 , 可以查看该 Android 工程的一系列 Gradle 任务 , 这些 Task 任务都分好了组 , 有如下分组 :
在 Terminal 面板中执行 gradlew task 命令显示所有任务 : 在每个任务之后都有该任务的具体作用 ;
在 Gradle 自定义插件 Plugin 中 , 如果要执行复杂的工作 , 可以在 实现的 Plugin 接口的 apply 函数中执行 ;
在 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑤ ( 使用 Sonatype Nexus 搭建 Maven 仓库 ) 博客中搭建的 Maven 私服基础上 , 登录 http://localhost:8081/ Web 页面 ;
LintOptions ( build.gradle#android#lintOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.LintOptions.html
如 : other 分组下的 compileDebugJavaWithJavac 任务 , 该任务的主要作用是 使用 javac 编译器工具 将 Java 源代码文件 编译成 Class 字节码文件 ;
在上一篇博客 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 ) 中 , 实现了 自定义插件 的 扩展 Extension , 在 Module 模块下的 build.gradle 构建脚本中 , android 配置块 就是一个 AppExtension 扩展 , 但是在 android 扩展下又定义了 defaultConfig 扩展 , 这是一个 ProductFlavor 配置 ;
在插件模块中的 src/main 目录 下创建 groovy 目录 , 用于存放 Groovy 代码 , 在其中定义包名以及包名下的源码 :
PackagingOptions ( build.gradle#android#packagingOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.PackagingOptions.html
在 buildSrc 中开发了自定义 Gradle 插件 , 编译后在 build/libs 目录下会生成 buildSrc.jar 包 ,
Task#shouldRunAfter 函数的作用是为 Gradle 任务设置该任务执行时 , 应该在某个任务之后 ;
在 Android 安装包优化 专栏中 , 介绍了如何 给 Android APK 安装文件进行瘦身 , 介绍了
领取专属 10元无门槛券
手把手带您无忧上云