简体中文
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插件也同理,没有引用就不会打进去。
uni-createRequestPermissionListener
监听权限申请模块(HBuilderX4.0+
),包括API:uni.createRequestPermissionListener
依赖的模块:无
注意:HBuilderX4.0版本新增,仅App-Android平台支持。
uni-createWebviewContext
创建 web-view 组件的上下文对象模块,包括API:uni.createWebviewContext
依赖的模块:无
uni-fileSystemManager
文件管理模块(HBuilderX3.99+
),包括API:uni.getFileSystemManager
依赖的模块:无
uni-getLocation-system
系统定位模块,包括API:uni.getLocation
依赖的模块:无
uni-getNetworkType
获取网络类型模块,包括API:uni.getNetworkType
依赖的模块:无
uni-installApk
安装apk模块(HBuilderX3.99+
),包括API:uni.installApk
依赖的模块:无
注意:HBuilderX3.99版本新增,仅App-Android平台支持。
uni-media
多媒体相关API模块,包括API:uni.chooseImage、uni.previewImage、uni.saveImageToPhotosAlbum
依赖的模块:无
uni-network
网络请求(文件上传/下载)模块,包括API:uni.downloadFile、uni.request、uni.uploadFile
依赖的模块:无
uni-websocket
WebSocket模块,包括API:uni.connectSocket、uni.onSocketOpen、uni.onSocketError、uni.sendSocketMessage、uni.onSocketMessage、uni.closeSocket、uni.onSocketClose
依赖的模块:无
uni-video
video视频组件模块,包括内置组件:video;包括API:uni.createVideoContext
依赖的模块:无
uni-cloud-client
调用uniCloud云函数/云对象模块,包括API:uniCloud.importObject、uniCloud.callFunction
依赖的模块:uni-media、uni-network
uni-ad
uni-AD广告联盟模块(HBuilderX4.0+
),包括API:uni.createRewardedVideoAd
依赖的模块:无
注意:此模块仅包含基础广告模块,配置聚合广告平台需手动配置,详情参考uni-ad章节
uni-push
uni-push统一推送模块(HBuilderX3.97+
),包括API:uni.createPushMessage、uni.getPushClientId、uni.offPushMessage、uni.onPushMessage
依赖的模块:无
uni-facialRecognitionVerify
uni实人认证模块,包括API:uni.getFacialRecognitionMetaInfo、uni.startFacialRecognitionVerify
依赖的模块:无
uni-verify
App一键登陆模块(HBuilderX3.99+
),包括API:uni.getUniverifyManager、UniverifyManager.preLogin、UniverifyManager.login
依赖的模块:无
uni-payment
uni-payment请求支付模块,包括API:uni.requestPayment
依赖的模块:无
注意:此模块仅包含基础支付模块,需手动配置支付方式,详情参考uni-payment章节
再次强调,以上模块不属于ext组件或api,是内置模块。但如果你的代码中没有使用这些组件和api,打正式包或自定义基座时会被摇掉。
注意
uts插件中暂不支持摇树,如果uts插件中使用了以上模块,需在使用此uts插件的 uni-app x 项目 manifest.json 文件的 app -> distribute -> modules 下手动添加对应节点:
//以下示例手动添加 uni-media 模块
modules:{
"uni-media":{}
}
HBuilderX 3.99+ 新增支持 uni-ad 开屏广告
uni-ad 是DCloud提供的聚合广告服务。
在uni-app x客户端,uni-ad是一个独立模块。使用开屏广告不需要调用任何API,应用启动时会自动拉取并展示开屏广告。这也导致 uni-ad 模块无法参与摇树。 需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效。
使用 uni-ad 模块需在 manifest.json 文件中添加如下配置:
在 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-v7a
和arm64-v8a
两个CPU平台。
注意:目前仅支持上述国内广告平台,国际广告暂不支持。
HBuilderX 4.11+ 新增支持 uni-payment 请求支付
在uni-app x客户端,uni-payment是一个独立模块。需要开发者在 manifest.json 中手动配置,并提交云端打包后才能生效。
使用 uni-payment 模块需在 manifest.json 文件中添加如下配置:
在 app -> distribute -> modules 下添加 uni-ad 节点:
modules:{
"uni-payment":{
"alipay":{},
"wxpay":{}
}
}
其中 uni-payment 下的节点表示要聚合的支付方式:
标识 | 支付方式 |
---|---|
alipay | 支付宝支付 |
wxpay | 微信支付 |
添加相应的节点,云端打包就会将对应的支付 SDK 打包到最终安装包中。