Android Gradle 插件AaptOptions 配置 ③ ( cruncherEnabled 配置 | cruncherProcesses 配置 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件AaptOptions 配置 ③ ( cruncherEnabled 配置 | cruncherProcesses 配置 )相关的知识,希望对你有一定的参考价值。
文章目录
Android Plugin DSL Reference 参考文档 :
-
AppExtension ( build.gradle#android 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.AppExtension.html
-
build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html
-
ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
-
ProductFlavor#externalNativeBuild 配置 ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) : com.android.build.gradle.internal.dsl.ProductFlavor:externalNativeBuild
-
ExternalNativeBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.ExternalNativeBuildOptions.html
-
NdkBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild#ndkBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.NdkBuildOptions.html
-
CmakeOptions ( build.gradle#android#defaultConfig#externalNativeBuild#cmake 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.CmakeOptions.html
-
JackOptions ( build.gradle#android#defaultConfig#jackOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.JackOptions.html
-
AnnotationProcessorOptions ( 注解处理器配置 ) ( build.gradle#android#defaultConfig#javaCompileOptions配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html
-
NdkOptions ( build.gradle#android#defaultConfig#ndk 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.NdkOptions.html
-
VectorDrawablesOptions ( build.gradle#android#defaultConfig#vectorDrawables 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
-
BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html
-
SigningConfig ( build.gradle#android#signingConfigs 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.SigningConfig.html
-
AaptOptions ( build.gradle#android#aaptOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AaptOptions.html
-
NDK 参考文档 : Add C and C++ Code to Your Project.
一、AaptOptions#cruncherEnabled 配置
AaptOptions ( build.gradle#android#aaptOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AaptOptions.html
1、配置说明
AaptOptions#cruncherEnabled 配置 表示 是否开启 png 图片优化检查 , 默认为 true , 开启 png 图片优化检查 ;
AaptOptions#cruncherEnabled 配置原型 :
boolean cruncherEnabled
Returns true if the PNGs should be crunched, false otherwise.
2、使用示例
配置示例 :
android
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig
applicationId "com.example.classloader_demo"
aaptOptions
// aapt 附加参数
additionalParameters '--rename-manifest-package', 'com.example.classloader_demo2'
// 是否开启 png 图片优化检查
cruncherEnabled true
3、测试效果
① 正面效果
测试 png 优化检查 效果 : 将 jpeg 格式的图片修改为 png 后缀 , 在 编译时 , 会进行优化检查 , 如果图片格式错误 , 会中断编译 , 报如下错误 :
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.Aapt2CompileRunnable
> Android resource compilation failed
ERROR:D:\\002_Project\\002_Android_Learn\\ClassLoader_Demo\\app\\src\\main\\res\\drawable\\abc.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature.
ERROR:D:\\002_Project\\002_Android_Learn\\ClassLoader_Demo\\app\\src\\main\\res\\drawable\\abc.png: AAPT: error: file failed to compile.
② 负面效果
如果将 AaptOptions#cruncherEnabled 配置 设置为 false , 即使 png 图片错误 , 也能编译成功 ;
android
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig
applicationId "com.example.classloader_demo"
aaptOptions
// aapt 附加参数
additionalParameters '--rename-manifest-package', 'com.example.classloader_demo2'
// 是否开启 png 图片优化检查
cruncherEnabled false
二、AaptOptions#cruncherProcesses 配置
AaptOptions ( build.gradle#android#aaptOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AaptOptions.html
AaptOptions#cruncherProcesses 配置 : 获取要使用的 cruncher 进程数量 , 更多的 cruncher 进程会使得文件处理的更快 , 但是会占用更多的内存和 CPU ;
AaptOptions#cruncherProcesses 配置原型 :
int cruncherProcesses
Obtains the number of cruncher processes to use. More cruncher processes will crunch files faster, but will require more memory and CPU.
该配置一般不需要进行配置 ;
以上是关于Android Gradle 插件AaptOptions 配置 ③ ( cruncherEnabled 配置 | cruncherProcesses 配置 )的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )
Android Gradle 插件Gradle 自定义 Plugin 插件 ② ( buildSrc 目录中实现 Gradle 插件 | 实现 Gradle 插件代码 | 模块引入插件并编译 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
Android Gradle 插件Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )