文章目录一、使用 BuildType 配置多 dex 机制1、启用多 dex2、编辑 dex 类选择配置文件3、配置 dex 类选择配置文件4、验证 dex 分包效果Android Plugin DSL Reference 参考文档 :

文档主页 : https://google.github.io/android-gradle-dsl/2.3/

BaseExtension 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.BaseExtension.html

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

AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html

AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置 :android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceDirectorySet.html

AndroidSourceFile ( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html

DataBindingOptions ( build.gradle#android#dataBinding ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DataBindingOptions.html

DexOptions ( build.gradle#android#dexOptions ) 文档位置 : https://google.github.io/android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DexOptions.html

NDK 参考文档 : Add C and C++ Code to Your Project.

一、使用 BuildType 配置多 dex 机制1、启用多 dex首先 , 在 " build.gradle#android#buildTypes#multiDexEnabled " 处配置 多 dex 机制 启用 ;

代码语言:javascript复制android {

buildTypes {

debug {

multiDexEnabled true

}

}

}2、编辑 dex 类选择配置文件然后 , 编辑 主 dex 文件的类选择配置文件 " keep_in_main.txt " ;

内容为

代码语言:javascript复制kim/hsl/svg/MainActivity.class3、配置 dex 类选择配置文件最后 , 在 " build.gradle#android#buildTypes#multiDexKeepFile " 配置上述 " keep_in_main.txt " 文件 ;

代码语言:javascript复制android {

buildTypes {

debug {

multiDexEnabled true

multiDexKeepFile file('keep_in_main.txt')

}

}

}4、验证 dex 分包效果编译后的 apk 文件如下 :

编译出

2 个 dex 文件 , kim.hsl.svg.MainActivity 类被分到了 classes.dex 字节码文件中 ;

kim.hsl.svg.Student 类被分到了 classes2.dex 字节码文件中 ;