# modules

# 模块的摇树

uni-app x的Android基础库体积是7M,打包后的apk体积是基础库的体积加上开发者的代码及代码引用的模块的体积。有些模块涉及so库,覆盖的cpu指令越多,包体积越大。

在uni-app js引擎版中,内置模块如video,是开发者在manifest.json中手动勾选配置的。

但在uni-app x中,不需要手动配置。

HBuilderX3.93版本起,编译器支持扫描代码,摇树treeShaking,自动引入或剔除不需要的内置模块。

如应用中没有使用video组件相关功能,将不再包含video内置模块,减少安装包体积。

摇树注意事项: 当你打包自定义基座时,如果你的工程代码没有使用video、定位、相册、摄像头等涉及三方sdk或敏感权限的api,打出的自定义基座包就不会包含这些组件和api的功能,那么在这些自定义基座上运行时,调用相关的组件和api就会报错。
此时您需要在工程中写相关的代码,如引用video组件或调用定位api,保存代码后重新打包自定义基座,才会包含相关模块。

您在工程中下载的ext api、三方uts插件也同理,没有引用就不会打进去。

# App端支持摇树的内置模块列表

再次强调,以上模块不属于ext组件或api,是内置模块。但如果你的代码中没有使用这些组件和api,打正式包或自定义基座时会被摇掉。

注意
uts插件中暂不支持摇树,如果uts插件中使用了以上模块,需在使用此uts插件的 uni-app x 项目 manifest.json 文件的 app -> distribute -> modules 下手动添加对应节点:

	//以下示例手动添加  uni-media  模块  
	modules:{
		"uni-media":{}
	}

# uni-ad

HBuilderX 3.99+ 新增支持 uni-ad 开屏广告

uni-ad 是DCloud提供的聚合广告服务。

在uni-app x客户端,uni-ad是一个独立模块。使用开屏广告不需要调用任何API,应用启动时会自动拉取并展示开屏广告。这也导致 uni-ad 模块无法参与摇树。 需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效。

使用 uni-ad 模块需在 manifest.json 文件中添加如下配置:

# 配置三方广告SDK

在 app -> distribute -> modules 下添加 uni-ad 节点:

	modules:{
		"uni-ad":{
			"gdt":{},
			"gm":{},
			"ks":{},
			"sgm":{},
			"bd":{}
		}
	}

其中 uni-ad 下的节点表示要聚合的广告平台:

标识 广告平台名称
gdt 腾讯优量汇广告联盟
gm 穿山甲GroMore
ks 快手广告联盟
sgm Sigmob广告联盟
bd 百度百青藤广告联盟

添加相应的节点,云端打包就会将对应的广告平台 SDK 打包到最终安装包中。

注意:穿山甲GroMore、快手广告联盟、腾讯优量汇广告联盟仅支持armeabi-v7aarm64-v8a两个CPU平台。

注意:目前仅支持上述国内广告平台,国际广告暂不支持。

# uni-payment

HBuilderX 4.11+ 新增支持 uni-payment 请求支付

在uni-app x客户端,uni-payment是一个独立模块。需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效。

使用 uni-payment 模块需在 manifest.json 文件中添加如下配置:

# 配置支付SDK

在 app -> distribute -> modules 下添加 uni-ad 节点:

  	modules:{
	     	"uni-payment":{
                       "alipay":{},
                       "wxpay":{}
                }
	}

其中 uni-payment 下的节点表示要聚合的支付方式:

标识 支付方式
alipay 支付宝支付
wxpay 微信支付

添加相应的节点,云端打包就会将对应的支付 SDK 打包到最终安装包中。