English
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-network 网络请求(文件上传/下载)模块,包括API:uni.downloadFile、uni.request、uni.uploadFile 依赖的模块:无
uni-getLocation-system 系统定位模块,包括API:uni.getLocation 依赖的模块:无
uni-video video视频组件模块,包括内置组件:video;包括API:uni.createVideoContext
uni-media 多媒体相关API模块,包括API:uni.chooseImage、uni.previewImage、uni.saveImageToPhotosAlbum 依赖的模块:无
uni-cloud-client 调用uniCloud云函数/云对象模块,包括API:uniCloud.importObject、uniCloud.callFunction 依赖的模块:uni-media、uni-network
uni-push
uni-push统一推送模块(HBuilderX3.97+),包括API:uni.createPushMessage、uni.getPushClientId、uni.offPushMessage、uni.onPushMessage
依赖的模块:无
uni-facialRecognitionVerify uni实人认证模块,包括API:uni.getFacialRecognitionMetaInfo、uni.startFacialRecognitionVerify 依赖的模块:无
再次强调,以上模块不属于ext组件或api,是内置模块。但如果你的代码中没有使用这些组件和api,打正式包或自定义基座时会被摇掉。
HBuilderX3.99版本起,uni-app x 支持 uni-AD 开屏广告。
uni-AD 开屏广告作为一个独立的模块,不需要额外的API,应用启动时会自动拉取并展示开屏广告。由于开屏广告的特殊性,也导致uni-AD广告模块无法参与摇树。需要开发者打包时手动在 manifest.json 中添加广告配置。
uni-AD 开屏广告打包时需要在 manifest.json 中的 app->distribute->modules 节点下添加 uni-ad 节点。目前支持的广告平台有:腾讯优量汇广告联盟(gdt)、穿山甲GroMore(gm)、百度百青藤广告联盟(bd)、Sigmob广告联盟(sgm)、快手广告联盟(ks)。具体配置可参考下面配置:
modules:{
"uni-ad":{
"ks":{},
"gdt":{},
"bd":{},
"sgm":{},
"gm":{}
}
}