【Android Gradle 插件】BuildType 编译类型配置 ④ ( minifyEnabled 配置 | multiDexEnabled | pseudoLocalesEnabled )

2023-03-30 15:11:48 浏览数 (2)

文章目录

  • 一、BuildType#minifyEnabled 配置
  • 二、BuildType#multiDexEnabled 配置
  • 三、BuildType#pseudoLocalesEnabled 配置

Android Plugin DSL Reference 参考文档 :

  • 文档主页 : https://google.github.io/android-gradle-dsl/2.3/
  • 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
  • NDK 参考文档 : Add C and C Code to Your Project.

一、BuildType#minifyEnabled 配置


BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html

BuildType#minifyEnabled 配置项 用于配置 是否开启 混淆优化 , 默认为 false ;

BuildType#minifyEnabled 配置原型 :

代码语言:javascript复制
boolean minifyEnabled
Whether Minify is enabled for this build type.

Java 代码混淆参考如下博客 :

  • 【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )
  • 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )
  • 【Android 安全】DEX 加密 ( Proguard 混淆 | 将混淆后的报错信息转为原始报错信息 | retrace.bat 命令执行目录 | 暴露更少信息 )
  • 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )
  • 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

二、BuildType#multiDexEnabled 配置


BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html

BuildType#multiDexEnabled 配置 用于配置 是否支持多 Dex 机制 , 如果当前方法数超过

65535

则需要开启 ;

代码语言:javascript复制
Boolean multiDexEnabled
Whether Multi-Dex is enabled for this variant.

BuildType#multiDexEnabled 配置 需要结合 BuildType#multiDexKeepFile 配置 和 BuildType#multiDexKeepProguard 配置 使用 ;

代码语言:javascript复制
Boolean multiDexEnabled
是否为此变体启用多索引。

File multiDexKeepFile
文本文件,指定将编译到主dex文件中的其他类。
文件中指定的类附加到使用aapt计算的主索引类。
如果设置了,文件每行应该包含一个类,格式如下:com/example/MyClass。班

File multiDexKeepProguard
文本文件,带有附加的ProGuard规则,用于确定哪些类被编译到主dex文件中。
如果已设置,则此文件中的规则将与生成系统使用的默认规则结合使用。

三、BuildType#pseudoLocalesEnabled 配置


BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html

BuildType#pseudoLocalesEnabled 配置 作用是 配置国际化相关区域配置 ;

代码语言:javascript复制
是否在APK中生成伪语言环境。
如果启用,将向APK中添加两个伪区域设置(en-XA和ar-XB),以帮助测试应用程序中的国际化支持。

BuildType#pseudoLocalesEnabled 配置原型 :

代码语言:javascript复制
boolean pseudoLocalesEnabled
Whether to generate pseudo locale in the APK.

If enabled, 2 fake pseudo locales (en-XA and ar-XB) will be added to the APK to help test internationalization support in the app.

0 人点赞