Android Gradle 插件Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )相关的知识,希望对你有一定的参考价值。
文章目录
Android Plugin DSL Reference 参考文档 :
-
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
-
NDK 参考文档 : Add C and C++ Code to Your Project.
-
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 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DexOptions.html
-
LintOptions ( build.gradle#android#lintOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.LintOptions.html
-
PackagingOptions ( build.gradle#android#packagingOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.PackagingOptions.html
-
Splits ( build.gradle#android#splits ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.Splits.html
-
AbiSplitOptions ( build.gradle#android#splits#abi ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AbiSplitOptions.html
-
DensitySplitOptions ( build.gradle#android#splits#density ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DensitySplitOptions.html
在 Splits 配置中 , 有 3 3 3 个脚本块配置 ,
- abi ,
- density ,
- language;
参考 android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.Splits.html 文档 ;
一、Splits#density 脚本块配置
Splits ( build.gradle#android#splits ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.Splits.html
DensitySplitOptions ( build.gradle#android#splits#density ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DensitySplitOptions.html
1、配置简介
Splits#density 脚本块配置 用于配置 根据 屏幕像素密度 进行 apk 分包的设置 ;
2、配置原型
Splits#density 脚本块配置原型 : 配置 屏幕像素密度 分包设置 ;
density
Configures density split settings.
配置 屏幕像素密度 分包设置
Delegates to:
DensitySplitOptions from density
该脚本块主要是配置 Splits#density 属性 , 其类型是 DensitySplitOptions ;
Splits#density 属性 原型如下 :
DensitySplitOptions density
Density settings.
3、使用示例
Splits#density 配置使用示例 : 下面的章节会详细讲解 DensitySplitOptions 配置的属性及方法细节 ;
android
splits
abi
enable true
// 重置所有配置
reset()
// 只生成 x86 和 armeabi-v7a 架构的 apk
include 'x86', 'armeabi-v7a'
universalApk true
density
enable true
// 排除 xhdpi 的打包 apk
exclude 'xhdpi'
使用效果 : 编译 apk 文件时 , 会为每个 屏幕像素密度 生成独立的 apk 文件 ;
如 : 为 xhdpi 生成一个专门在 xhdpi 设备上运行的 apk ;
默认是生成所有屏幕像素密度的 apk 包 , 如果设置了 exclude 'xhdpi'
, 就不会生成 该 密度 对应的 apk , 生成其它 ldpi
mdpi
hdpi
xxhdpi
xxxhdpi
的 apk 文件 ;
二、DensitySplitOptions 配置简介
DensitySplitOptions ( build.gradle#android#splits#density ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DensitySplitOptions.html
1、属性方法配置简介
在 build.gradle#android#splits#density 中配置的类型是 DensitySplitOptions 配置 , 该配置的属性与方法如下 :
Properties
Property Description
applicableFilters
Returns a list of all applicable filters for this dimension.
返回此维度所有适用筛选器的列表。
auto
Whether the build system should determine the splits based on the "language-*" folders in the resources.
构建系统是否应根据参考资料中的“language-*”文件夹确定拆分。
compatibleScreens
A list of compatible screens.
兼容屏幕列表。
enable
Whether to split in this dimension.
是否在此维度中拆分。
Methods
Method Description
exclude(excludes)
excludes some values
排除某些值
include(includes)
includes some values
包括一些值
reset()
Resets the list of included split configuration.
重置包含的拆分配置列表。
2、属性方法配置使用方法 ( 官方使用文档 )
上述方法属性的具体用法 , 参考 https://developer.android.com/studio/build/configure-apk-splits 文档 ;
以上是关于Android Gradle 插件Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )的主要内容,如果未能解决你的问题,请参考以下文章
Android Gradle 插件Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )
Android Gradle 插件 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )
Android Gradle 插件Gradle 依赖管理 ③ ( build.gradle#dependencies 依赖分组 | configurations 自定义依赖分组 )
Android Gradle 插件Gradle 构建机制 ① ( 空白工程 Gradle 构建文件 | IntelliJ IDEA 工程构建文件 | Android Studio 工程构建文件 )
Android Gradle 插件SigningConfig 签名配置 ① ( SigningConfig 签名配置位置 | storeFile 配置 | storePassword 配置 )
Android Gradle 插件Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★