tencent cloud

腾讯特效 SDK

动态与公告
产品动态
关于腾讯特效 SDK V3.5 版本更新公告
关于腾讯特效 SDK V3.0 版本相关接口及素材变更公告
产品简介
产品概述
产品功能
基本概念
产品优势
应用场景
购买指南
价格总览
购买流程
欠费退费说明
新手指引
Demo 体验
免费测试
License 指引
移动端 License 新增与续期
PC 端 License 新增与续期
Web端 License 新增与续期
常见问题
SDK 下载
功能说明
SDK 下载
版本历史
SDK 集成指引(无 UI)
通用集成腾讯特效
原子能力集成指引
SDK 集成指引(含 UI)
通用集成腾讯特效
直播 SDK 集成腾讯特效
TRTC SDK 集成腾讯特效
短视频 SDK 集成腾讯特效
Avatar 虚拟人集成指引
API 文档
iOS
Android
Flutter
Web
功能实践
SDK 包瘦身
SDK 集成问题排查
性能调优
效果调优
素材使用
美颜参数说明
美颜场景推荐参数
短视频企业版迁移指引
第三方推流接入美颜(Flutter)
小程序美颜特效实践
素材制作工具使用
Web 美颜特效
产品概述
快速上手
SDK 接入
API 文档
控制台指南
Demo 体验
内置素材总览
实践教程
常见问题
常见问题
通用类相关
技术类相关
License 相关
旧版文档
美颜场景推荐参数
美颜参数表
一分钟集成 TRTC
一分钟集成直播
TE SDK 政策
隐私协议
数据处理和安全协议
联系我们

Android

PDF
聚焦模式
字号
最后更新时间: 2025-12-17 17:43:52
为了减少包体大小,您可将 SDK 所需的 so 库、模型资源改为联网下载,只需要在 SDK 初始化之前下载好这些文件即可。对于滤镜和动效资源,建议在用户点击使用时,点击一项下载一项。

Demo工程: TEBeauty_Download_Example

从 GitHub clone 出 demo工程,根据 TEBeauty_Download_Example/readme 文档配置和运行TEBeauty_Download_Example,以了解动态下载的整体流程。

动态下载 so 库和模型资源

如果您复用 Demo 中的下载代码
如果您自己做下载
1. 将 demo 工程 com.tencent.demo.download 目录下的代码拷贝到您的工程。
2. 下载SDK,解压,然后从"SDK"目录找到.zip格式的压缩包,再次解压,您将看到如下文件:

20240516-205143@2x


3. 将 download_assets.zip, arm64-v8a.zip, armeabi-v7a.zip 上传到您的服务器,得到下载地址。计算出这3个 zip 文件的 MD5。将这3个下载地址和 MD5 填在 ResDownloadConfig.java 里对应的常量上。
4. 参见TEMenuActivity.java里的代码,通过 ResDownloadUtil.getValidLibsDirectory 检查 so 库是否已经下载好,如果没下载好,则调用 ResDownloadUtil.checkOrDownloadFiles 启动下载,下载成功后得到 so 库的路径 sdkLibraryDirectory,然后调用 XmagicApi.setLibPathAndLoad(sdkLibraryDirectory) 加载 so 库。
String validLibsDirectory = ResDownloadUtil.getValidLibsDirectory(this, libraryMD5);
if (validLibsDirectory == null) {
ResDownloadUtil.checkOrDownloadFiles(this, ResDownloadUtil.FILE_TYPE_LIBS, libraryURL, libraryMD5,
new TEDownloadListener() {
@Override
public void onDownloadSuccess(String directory) {
sdkLibraryDirectory = directory;
}

@Override
public void onDownloading(int progress) {
}

@Override
public void onDownloadFailed(int errorCode) {
}
});
} else {
sdkLibraryDirectory = validLibsDirectory;
}
5. 参见TEMenuActivity.java里的代码,通过 ResDownloadUtil.getValidAssetsDirectory 检查模型资源是否已经下载好,如果没下载好,则调用 ResDownloadUtil.checkOrDownloadFiles 启动下载,模块内部会把这些资源下载、整理、拷贝到 AppConfig.resPathForSDK目录 ,在 new XmagicApi 时传给 SDK。
String validAssetsDirectory = ResDownloadUtil.getValidAssetsDirectory(this, ResDownloadConfig.DOWNLOAD_MD5_ASSETS);
if (TextUtils.isEmpty(validAssetsDirectory)) {
ResDownloadUtil.checkOrDownloadFiles(this, ResDownloadUtil.FILE_TYPE_ASSETS,
ResDownloadConfig.DOWNLOAD_URL_ASSETS,
ResDownloadConfig.DOWNLOAD_MD5_ASSETS, new TEDownloadListener() {
@Override
public void onDownloadSuccess(String directory) {
}

@Override
public void onDownloading(int progress) {
}

@Override
public void onDownloadFailed(int errorCode) {
}
});
} else {
}
6. Demo 中默认是开启断点续传功能的(ResDownloadUtil.java ENABLE_RESUME_FROM_BREAKPOINT 属性为true),可以确保在下载异常中断后,下次继续从中断点接着下载。如果您也想开启断点续传,请确保您的下载服务器支持断点续传能力。 检测方法:
判断服务器是否支持断点续传,看Web服务器是否支持Range请求即可。测试方法是在命令行中执行curl命令:
curl -i --range 0-9 https://您的服务器地址/待下载的文件名
例如:
curl -i --range 0-9 https://mediacloud-76607.gzc.vod.tencent-cloud.com/TencentEffect/Android/2.4.1.119/xmagic_S1-04_android_2.4.1.119.zip
如果返回的内容有Content-Range 字段,则表示服务器支持断点续传。
1. 下载SDK,解压,然后从"SDK"目录找到 .zip 格式的压缩包,再次解压,您将看到如下文件。assets 里的模型文件和 jniLibs 里的 so 文件可以动态下载。libs 里的 aar 则需要内置到包里。

20240516-205143@2x


2. 下载完 so 文件并解压后,调用XmagicApi.setLibPathAndLoad(/path/to/so/files) 加载 so 库。



注意:
强烈建议您将 so 下载到 App 的私有目录,而不是外部存储,以防 so 被清理软件误删。同时,建议您根据用户手机的 CPU 类型按需下载 v8a 或 v7a 的 so,以加快下载速度,这里可以参考 Demo 工程的 TEMenuActivity 的做法。
3. 对于 download_assets.zip 包里的文件,下载完成后,解压,然后调用下面的代码让 SDK 把文件拷贝到正确的目录(AppConfig.resPathForSDK所指向的目录),代码中的downloadedDirectory是您解压后的文件所在目录。
addAiModeFiles返回的错误码-2表示文件拷贝过程中失败了,可能是手机空间不足或 IO 异常,可尝试重新拷贝或重新下载。
private static boolean organizeAssetsDirectory(String downloadedDirectory) {
for (String path : XmagicResourceUtil.AI_MODE_DIR_NAMES) {
if (XmagicApi.addAiModeFiles(downloadedDirectory + File.separator + path, AppConfig.resPathForSDK) == -2) {
return false;
}
}
return true;
}
注意:
当 SDK 版本更新时,对应的 so 和 assets 可能会发生变化,为确保兼容性,您需要重新下载这些文件。建议参见 Demo 中的方式,利用 MD5 进行校验 。
由于腾讯特效 SDK 还依赖 libpag 和 gson 库,而当前的动态下载功能仅针对腾讯特效 SDK 本身,因此需要手动在项目中添加 libpag 和 gson 的依赖,具体版本号请参考文档

滤镜和动效资源下载

每个滤镜都是一张 png 格式的图片,每个动效都是一个文件夹,对于滤镜和动效资源,建议在用户点击使用时,点击一项下载一项。下载成功后,调用 SDK 的 XmagicApi.setEffect 接口,将滤镜路径或动效文件夹的路径设置给 SDK 即可。
滤镜和动效资源可以保存在手机任意目录,我们建议您保存在 app 私有目录,防止被误清理。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈