文章目录

  • 一、Splits#abi{} 脚本块配置
    • 1、配置简介
    • 2、配置原型
    • 3、使用示例
  • 二、AbiSplitOptions 配置简介
    • 1、属性配置简介
    • 2、方法配置简介
    • 3、属性方法配置使用方法 ( 官方使用文档 )

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

  • 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 配置中 , 有 333 个脚本块配置 ,

  • 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 配置 , 该配置有 333 个配置项 :

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 配置简介 )相关推荐

  1. 【Android Gradle 插件】 Splits 配置 ① ( BaseExtension#splits 配置 | Splits 配置简介 )

    文章目录 一.BaseExtension#splits 配置 1.BaseExtension#splits { } 脚配块配置简介 2.BaseExtension#splits { } 脚配块配置原型 ...

  2. 【Android Gradle 插件】工程根目录下 build.gradle 配置文件 ( 远程仓库配置 | 依赖配置 | 所有子模块配置 | task clean 任务 )

    文章目录 一.工程根目录下 build.gradle 配置文件 1.基本作用 2.远程仓库配置 3.依赖配置 3.所有子模块配置 4.task clean 任务 Android Plugin DSL ...

  3. 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#buildConfigField 方法 | 单独编译生成 BuildConfig 类的任务 )

    文章目录 一.ProductFlavor#buildConfigField 方法 二.单独执行 Gradle 编译 BuildConfig 的任务 Android Plugin DSL Referen ...

  4. 当前版本的Android Gradle插件不支持按需配置

    本文翻译自:Configuration on demand is not supported by the current version of the Android Gradle plugin A ...

  5. 【Android Gradle 插件】AaptOptions 配置 ⑥ ( Overlay 重叠包机制 | AaptOptions#additionalParameters 附加参数配置 )

    文章目录 一.Overlay 重叠包机制 二.AaptOptions#additionalParameters 附加 -S 参数配置实现Overlay 重叠包机制 Android Plugin DSL ...

  6. 【Android Gradle 插件】DexOptions 配置 ③ ( additionalParameters 属性配置 | 多 dex 参数配置 | --multi-dex 参数 )

    文章目录 一.dx --multi-dex 参数 1.--multi-dex 参数简介 2.--multi-dex 参数配置示例 二.BuildType#multiDexEnabled 属性配置多 d ...

  7. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

    文章目录 一.Android 中的 WebP 图片格式使用 二.WebP 格式转换 三.WebP 参考文档 Android Plugin DSL Reference 参考文档 : Android St ...

  8. Android Gradle 插件版本说明

    Android Studio 构建系统以 Gradle 为基础,并且 Android Gradle 插件添加了几项专用于构建 Android 应用的功能.虽然 Android 插件通常会与 Andro ...

  9. 小记Android Gradle插件 Iven 记于 20190522 药厂

    2016.04年 Android Gradle插件2.x 通过支持字节码注入,将代码和资源更新推送到模拟器或物理设备上正在运行的应用程序,启用Instant Run. 添加了对增量构建的支持,即使应用 ...

最新文章

  1. iPhone Three20软件引擎之构建开发环境与HelloWorld
  2. Oracle配置文件详解listener.ora,sqlnet.ora,tnames.ora
  3. idea 找不到或无法加载主类_解决IDEA中Groovy项目no Groovy library is defined的问题
  4. 【强化学习】Policy Gradients代码注释版本
  5. SQL Serverf 索引 - 索引压缩 、附加特性 第十篇
  6. 软件工程概论总结第四章
  7. RTL8211E应用(一)之芯片功能介绍
  8. 【MySQL】二,常用的SQL标准有哪些
  9. 在vue中使用echarts实现飞机航线 水滴图 词云图
  10. 史上最详细bitbucket入门手册,手把手操作指南
  11. 51单片机按下按键数码管加一
  12. 诠释绿色科技 Laedana荣获2022国际CMF设计奖
  13. 订单23系统服务器,死亡搁浅寻物系统服务器任务内容介绍-死亡搁浅寻物系统服务器任务流程详情_牛游戏网...
  14. Hystrix熔断器简介
  15. 阿里云网站备案申请被驳回怎么办?
  16. Model-Based Value Expansion for Efficient Model-Free Reinforcement Learning(mve)
  17. Eolink 微光计划
  18. c语言程序float的意思,c语言中的float表示什么意思?
  19. c:if标签判断字符串值相等
  20. 关于网页版微信扫码登录以及获取用户信息

热门文章

  1. Linux基本的键盘输入快捷键和一些常用命令
  2. 不仅仅生成图片,用GAN做无监督的异常检测
  3. 移动开发之三种近场通信
  4. MFC界面设计——AUDK
  5. 北京近期校园招聘java_JAVA研发工程师-校招,北京
  6. 一个BUG引发的灾难:ORA-00600 [kjmchkiseq:!seq]
  7. 求解:Encountered internal error running command: TypeError: Cannot read property 'toLowerCase' of unde
  8. 收藏!程序猿治愈系表白图来了!
  9. 用计算机术语写毕业寄语,毕业寄语唯美句子(精选55句)
  10. 简单计算机java程序_JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单...