前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android Gradle 插件】Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )

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

作者头像
韩曙亮
发布2023-03-30 15:43:51
5390
发布2023-03-30 15:43:51
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

Android Plugin DSL Reference 参考文档 :

在 Splits 配置中 , 有

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 {} 脚本块配置原型 : 配置 屏幕像素密度 分包设置 ;

代码语言:javascript
复制
density { }
Configures density split settings.
配置 屏幕像素密度 分包设置

Delegates to:
DensitySplitOptions from density

该脚本块主要是配置 Splits#density 属性 , 其类型是 DensitySplitOptions ;

Splits#density 属性 原型如下 :

代码语言:javascript
复制
DensitySplitOptions density
Density settings.

3、使用示例

Splits#density 配置使用示例 : 下面的章节会详细讲解 DensitySplitOptions 配置的属性及方法细节 ;

代码语言:javascript
复制
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 配置 , 该配置的属性与方法如下 :

代码语言:javascript
复制
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 文档 ;

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、Splits#density{} 脚本块配置
    • 1、配置简介
      • 2、配置原型
        • 3、使用示例
        • 二、DensitySplitOptions 配置简介
          • 1、属性方法配置简介
            • 2、属性方法配置使用方法 ( 官方使用文档 )
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档