Android Gradle 插件 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Gradle 插件 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )相关的知识,希望对你有一定的参考价值。

文章目录

Android Plugin DSL Reference 参考文档 :


在 Splits 配置中 , 有 3 3 3 个脚本块配置 ,





一、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 Gradle 插件 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )

Android Gradle 插件 Splits 配置 ② ( Splits#abi{} 脚本块配置 | 根据 CPU 架构进行分包 | AbiSplitOptions 配置简介 )

Android Gradle 插件Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★

Android Gradle 插件Gradle 构建机制 ⑤ ( 在 Android Studio 中查看 Android Gradle 插件源码 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑥ ( 在 buildSrc 模块中依赖 Android Gradle 插件 | 完整代码示例 )