【Android Gradle 插件】 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )
文章目录
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
在 Splits 配置中 , 有 3 3 3 个脚本块配置 ,
- abi ,
- density ,
- language;
参考 android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.Splits.html 文档 ;
一、Splits#abi{} 脚本块配置
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
1、配置简介
Splits#abi{} 脚本块配置 用于配置 abi 架构 ;
2、配置原型
Splits#abi {} 脚本块配置原型 : 配置 ABI 分包设置 ;
abi { }
Configures ABI split settings.
配置 ABI 分包设置 ;
Delegates to:
AbiSplitOptions from abi
该脚本块主要是配置 Splits#abi 属性 , 其类型是 AbiSplitOptions ;
Splits#abi 属性 原型如下 :
AbiSplitOptions abi
ABI settings.
3、使用示例
Splits#abi 配置使用示例 : 下面的章节会详细讲解 AbiSplitOptions 配置的属性及方法细节 ;
android {
splits {
abi {
enable true
// 重置所有配置
reset()
// 只生成 x86 和 armeabi-v7a 架构的 apk
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
使用效果 : 编译 apk 文件时 , 会为每个 CPU 架构生成独立的 apk 文件 ;
如果应用中引入了多种 cpu 架构的 so 动态库文件 , 则打包时只将相应架构的 so 动态库打包到最终 apk 文件中 , 不会将所有的动态库都打包到 apk 中 ;
如 : 为 x86 生成一个专门在 x86 设备上运行的 apk , 其中的 so 动态库只有 x86 架构的库 ;
二、AbiSplitOptions 配置简介
AbiSplitOptions ( build.gradle#android#splits#abi ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AbiSplitOptions.html
1、属性配置简介
在 build.gradle#android#splits#abi 中配置的类型是 AbiSplitOptions 配置 , 该配置有 3 3 3 个配置项 :
enable 属性的作用是 启用开关 , 使用前 , 该配置项必须置为 true ;
universalApk 属性的作用是 是否为所有的 abi 架构创建 apk 安装包 ;
applicableFilters
Returns a list of all applicable filters for this dimension.
返回此维度所有适用筛选器的列表。
enable
Whether to split in this dimension.
是否在此维度中拆分。
universalApk
Whether to create an APK with all available ABIs.
是否使用所有可用的ABI创建APK。
2、方法配置简介
AbiSplitOptions#include 方法 的作用是 指定包含哪些 CPU 架构 ; 配置了该选项后 , 就会只生成该配置中的 apk ;
android {
splits {
abi {
enable true
// 只生成 x86 和 armeabi-v7a 架构的 apk
include 'x86', 'armeabi-v7a'
}
}
}
AbiSplitOptions#exclude 方法 的作用是 指定排除哪些 CPU 架构 ;
AbiSplitOptions#reset 方法 的作用是 重置配置 ;
void exclude(String... excludes)
excludes some values
排除某些值
void include(String... includes)
includes some values
包括一些值
void reset()
Resets the list of included split configuration.
重置包含的拆分配置列表。
Use this before calling include, in order to manually configure the list of configuration to split on, rather than excluding from the default list.
在调用include之前使用此选项,以便手动配置要拆分的配置列表,而不是从默认列表中排除。
3、属性方法配置使用方法 ( 官方使用文档 )
上述方法属性的具体用法 , 参考 https://developer.android.com/studio/build/configure-apk-splits 文档 ;
相关文章
- Android telephony_android获取真实时间
- android 浏览器 开发,Android 浏览器的开发实例分享
- Android SDK 下载安装及配置[通俗易懂]
- android scaleanimation动画,Android 的ScaleAnimation 缩放动画基本运用
- Android SELinux权限概念和配置说明
- eclipse配置安卓开发环境sdk_Android 设置网络代理
- 【Android FFMPEG 开发】FFMPEG 直播功能完整流程 + 源码 ( 源码交叉编译 -> AS工程配置 -> 音视频打开/读取/解码/格式转换 -> 原生绘制播放 -> 音视频同步 )
- 【Android 安全】DEX 加密 ( Proguard 简介 | Proguard 相关网址 | Proguard 混淆配置 )
- 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor 引入 | ProductFlavor 参考文档地址 )
- 【Android Gradle 插件】ProductFlavor 配置 ( AppExtension#externalNativeBuild 配置 | cmake 配置 | ndkBuild 配置 )
- 【错误记录】Android 应用安装后出现两个启动图标 ( 排查应用及依赖库中配置了 android.intent.category.LAUNCHER 的 Activity )
- 【错误记录】Android Gradle 配置报错 ( gradle.properties 配置到 BuildConfig 中需要注意类型转换 | 位置: 类 BuildConfig )
- 【错误记录】未安装该应用 ( 在 Android 12 之后 组件设置 android:exported=“false“ 属性 )
- 【错误记录】编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )
- 【Android Gradle 插件】BuildType 编译类型配置 ⑥ ( BuildType#signingConfig 配置 )
- 【Android Gradle 插件】AndroidSourceSets 配置 ② ( BaseExtension#sourceSets 配置 | AndroidSourceSets 配置简介 )
- 【Android Gradle 插件】DexOptions 配置 ④ ( additionalParameters 属性配置 | 使用 BuildType 配置多 dex 机制 )
- 【Android Gradle 插件】LintOptions 配置 ⑪ ( textReport 属性配置 | textOutput 属性配置 )
- 【Android Gradle 插件】TestOptions 配置 ③ ( TestOptions#unitTests 脚本块配置 | UnitTestOptions 配置简介 )
- 【Android Gradle 插件】Gradle 依赖管理 ② ( build.gradle 中的 dependencies 依赖配置 | DependencyHandler#add 方法介绍 )
- 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ③ ( 配置上传工件 | 将 Gradle 插件 jar 包、源码、文档上传到本地Maven 仓库 )
- 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ④ ( 默认生成的 pom 文件 | Maven 中的 pom 配置 | 自定义 pom 文件节点 )
- 【Android Gradle 插件】Gradle 基础配置 ② ( Gradle 空白项目构建示例演示 )
- 【Android Gradle 插件】Gradle 构建工具简介 ② ( Android 项目构建打包流程 | 构建工具发展 -> 手动配置 -> Ant -> Maven -> Gradle )