帮你快速理解、总结文档立即下载

源码解读(Android)

最近更新时间:2026-10-09 15:14:00
本文档已由 AI 辅助审校
我的收藏

简介

本文档将介绍腾讯云小视频(UGC)Android Demo 的运行方式与源码结构。Demo 基于腾讯云短视频 SDK(LiteAVSDK)构建,涵盖短视频的录制、编辑、合成、发布、播放,以及腾讯特效美颜等能力。通过阅读本文档,您可以快速理解工程各模块的职责与代码组织方式。

如何运行 Demo

1. 下载 Demo,并解压。
2. 使用 Android Studio 打开项目 LiteAVDemo(UGC)。
3. 在 xiaoshipindemo 模块下找到 LicenseManager 类,填写申请的短视频 License 和腾讯特效 License 信息:
ugcLicenceUrl / ugcKey:短视频 License 的授权地址与密钥。
xmagicAuthLicenceUrl / xmagicAuthKey:腾讯特效 License 的授权地址与密钥。
4. 在 app 模块下找到 build.gradle 文件,将 applicationId 的值修改为申请 License 时填写的 Android 包名。

工程结构

小视频工程共包含六个模块,其中 app 为壳工程,业务功能分布在其余五个模块中:
模块
说明
app
壳工程,放置整个工程的 Application 类。
业务功能模块(账号、列表、播放、短视频等)。
ugckit
短视频 SDK 的高级封装(含 UI)。
xmagickit
腾讯特效美颜接入模块。
beautykit
基础美颜模块。
ugcquic
短视频上传的 QUIC 协议探测与加速模块。

app

app 模块目录结构参考如下:

此模块放置整个工程的 Application 类,具体功能模块在对应的功能 module 中。
文件/目录
说明
TCApplication.java
小视频 Application 类,负责 ELK 数据上报(统计应用使用时长)。
build.gradle
模块构建配置,applicationId 在此配置。
AndroidManifest.xml
应用清单文件。
debug.keystore
调试签名。
proguard-rules.pro
混淆规则。

xiaoshipindemo

xiaoshipindemo 模块目录结构参考如下:

小视频按照功能划分成账号、主界面、播放、短视频(编辑、合成、录制、发布)等模块,代码上也按此划分进行分类。下面分别介绍这些模块及相应实现。

目录结构

文件/目录
说明
common
通用组件,包括各种工具类、自定义界面(美颜、播放器控件)。
login
账号模块,包括登录以及注册。
logoff
账号注销页面。
mainui
小视频主界面,包括主 Activity 以及视频列表。
manager
权限处理模块。
play
点播播放模块。
userinfo
个人资料模块。
videochoose
短视频文件选择模块。
videoeditor
短视频编辑模块。
videojoiner
短视频合成模块。
videopublish
短视频发布模块。
videorecord
短视频录制模块。
webview
用于承载 H5 页面。

账号模块

负责处理用户登录、注册以及登录缓存的逻辑。
如果您已经有自己的账号体系,可以直接替换该模块。
通过调用 TCUserMgr.register 将用户名、密码注册到小视频的业务后台;调用 TCUserMgr.login 进行登录,并将登录信息缓存到本地 SharedPreferences 中;退出登录时清空本地缓存。
相关代码:
类名
描述
TCLoginActivity.java
用户登录页面。
TCRegisterActivity.java
用户注册页面。
TCUserMgr
用户登录注册管理类。
ProgressFragmentUtil
显示进度条的控件。
TCUserInfoFragment.java
用户资料展示页面。
TCAboutActivity
小视频介绍的关于页面。

主界面和列表管理模块

主界面主要负责短视频列表、短视频拍摄/编辑和个人资料三个一级功能的切换。
登录成功后,默认展示列表界面;单击「+」号按钮后,弹出对话框让您选择录制小视频或编辑本地小视频;单击个人资料按钮,跳转到个人资料页面。
列表管理包含列表的拉取和展示。
相关代码:
类名
描述
TCSplashActivity.java
闪屏界面。
TCMainActivity.java
主界面,用于呈现短视频列表、短视频拍摄/编辑、用户信息页。
TCLiveListMgr.java
列表管理类,提供接口获取本地内存列表及从服务器更新列表。
TCLiveListFragment.java
列表展示界面,负责呈现短视频的数据。
TCLiveListAdapter.java
短视频列表适配层。
TCUGCVideoListAdapter.java
短视频列表适配层。
TCVideoInfo
视频数据。

短视频录制模块

小视频提供 短视频录制 功能,可录制一分钟的短视频;SDK 本身不显示录制时长。
相关代码:
类名
描述
TCVideoRecordActivity.java
短视频录制界面。
RecordProgressView
按住拍摄短视频 View。
ComposeRecordBtn
短视频多段拍摄进度条。

文件选择模块

提供本地文件选择功能,列出手机中所有 mp4 视频文件。
相关代码:
类名
描述
TCVideoChooseActivity.java
本地 mp4 文件选择界面。
TCVideoEditerListAdapter.java
本地 mp4 文件列表适配器。
TCVideoEditerMgr.java
mp4 视频文件管理类,提供接口获取存储在手机中的 mp4 文件。
TCVideoFileInfo.java
本地视频数据。

编辑模块

视频编辑 包括视频裁剪、慢动作、滤镜、音乐混音、贴纸、添加字幕等功能。
相关代码:
类名
描述
TCVideoCutterActivity.java
短视频裁剪界面。
TCVideoEditerActivity.java
短视频裁剪后编辑界面,底部有音乐、滤镜、速度、色调、贴纸、字幕等功能。
TCVideoEffectActivity.java
单击底部按钮,进入短视频添加特效界面。

短视频合成模块

videojoiner/ 目录负责短视频合成相关功能。

短视频发布模块

将录制的文件发布到腾讯云视频分发平台(点播系统)中。
相关代码:
类名
描述
TCVideoPublisherActivity.java
短视频发布界面。

短视频播放模块

播放已经发布到点播系统中的视频,在小视频列表页面上下滑动可快速切换上/下一个视频。
相关代码:
类名
描述
TCVodPlayerActivity.java
短视频播放界面。

ugckit

ugckit 模块目录结构参考如下:

此模块主要是对短视频 SDK 的高级封装(包含 UI),方便快速接入。
文件/目录
说明
basic
通用接口。
component
页面上使用的组件。
module
裁剪、编辑、特效、合成、多屏合拍、录制、上传、视频选择等模块封装,方便对应 View 使用。
utils
工具类模块。
PermissionIntroductionDialog
权限对话框。
UGCKit
UGC 初始化类。
UGCKitConstants
常量配置信息。
UGCKitPicturePicker
图片选择模块 View。
UGCKitVideoCut
短视频裁剪模块 View。
UGCKitVideoEdit
短视频编辑模块 View。
UGCKitVideoEffect
短视频特效设置模块 View。
UGCKitVideoJoin
短视频合成模块 View。
UGCKitVideoMixRecord
多屏录制模块 View。
UGCKitVideoPicker
视频选择模块 View。
UGCKitVideoPublish
上传视频模块 View。
UGCKitVideoRecord
短视频录制模块 View。

xmagickit

xmagickit 模块目录结构参考如下:

此模块用于快速接入腾讯特效美颜,是对腾讯特效美颜 Kit(TEBeautyKit)的二次封装。如果您需要在短视频中接入腾讯特效,可以参考 Demo 中使用此模块的方式快速接入。
文件/目录
说明
assets
存放腾讯特效中使用的滤镜和贴纸,以及 TEBeautyKit 中美颜面板需要使用的配置文件。
TEBeautySDKManger
腾讯特效美颜 SDK 管理类,负责 SDK 初始化、授权校验、美颜面板资源配置以及动效资源拷贝。
CustomPropertyManager
自定义属性管理类,处理自定义分割(自定义背景图片/视频)的素材选择与设置。
DefaultPanelViewCallback
美颜面板视图回调(TEPanelViewCallback)的默认实现。
utils
工具类,包含 AppUtils(应用信息)、BitmapUtil(图片压缩/旋转处理)、SPUtils(本地存储)、UriUtils(Uri 转文件路径)。

beautykit

beautykit 模块目录结构参考如下:

此模块是短视频中的基础美颜模块。如果客户选择使用基础美颜,可以使用此模块进行快速集成。
文件/目录
说明
adapter
美颜面板 UI Adapter。
constant
美颜常量定义。
download
美颜下载模块。
model
美颜属性封装模块。
utils
工具类。
view
美颜面板。
BeautyImpl
使用美颜的封装类。
BeautyParams
美颜参数封装类。

ugcquic

ugcquic 模块目录结构参考如下:

此模块用于短视频上传的 QUIC 协议探测与加速,是对腾讯云 QUIC(TQUIC)SDK 的封装。它能在短视频上传前探测 QUIC 链路是否连通,从而提升上传速度与成功率。
文件/目录
说明
impl
QUIC 协议封装实现,包括 QUIC 客户端代理与回调接口。
相关代码:
类名
描述
UGCQuicClientProxy.java
QUIC 客户端代理类,封装 TnetQuicRequest 的连接、请求、取消等操作,并转发底层回调。
UGCQuicCallback.java
QUIC 回调接口,定义连接、网络建立、响应头/数据接收、完成及关闭等回调方法。
说明:
该模块通过 com.qcloud.cos:quic 依赖提供底层 QUIC 能力。上传模块(ugckit 中的 QuicClient)通过反射调用本模块的 UGCQuicClientProxy / UGCQuicCallback 完成上传前的 QUIC 链路探测;当业务无需 QUIC 加速时,可移除该模块依赖而不影响上传主流程。