QzoneArchive Android构建指南:Tauri移动开发完整上手教程
【免费下载链接】QzoneArchive将 QQ 空间历史动态、照片、视频与互动记录安全归档到本地的桌面 / 移动端工具。项目地址: https://gitcode.com/gh_mirrors/qz/QzoneArchive
QzoneArchive 是一款将 QQ 空间动态、照片、视频与互动记录安全归档到本地的桌面/移动端工具。本文是一份面向新手的Tauri 2 Android 构建完整教程:从环境安装、一键编译到模拟器运行,再到打包签名发布版 APK,带你 30 分钟把 QQ 空间归档工具装进自己的手机 📱
为什么值得自建 QzoneArchive 的 Android 版
QQ 空间的资料会随时间流失,而 QzoneArchive 的核心能力全部可以在手机上使用:
- 完整归档:还原原始动态正文、图片、视频和评论,按「本人动态 / 好友动态 / 留言」分类
- 断点续传:网络中断后自动从上次位置继续,已归档内容不丢失
- 频率保护:每 10 分钟最多请求 300 页,触发限流后安全暂停
- 本地存储:所有数据以 SQLite 保存在本机,不上传任何服务器
Android 端使用移动端二维码扫码登录,全程不接触账号密码。下面这张图就是归档完成后,手机里可以看到的应用主界面:
Android 构建环境前置要求清单
动手前先对照检查环境,这是 Tauri 移动开发最常见的卡点来源:
| 组件 | 版本要求 | 用途 |
|---|---|---|
| Node.js | 20+ | 前端 Vite 构建与 Tauri CLI 调用 |
| Rust | 1.77+ | 编译 Rust 后端(含 src-tauri/src/qzone.rs 归档引擎) |
| Android Studio | 最新版 | 图形化配置 SDK/NDK |
| Android SDK | 平台 34+ | 打包 APK 系统依赖 |
| Android NDK | 25 及以上 | 交叉编译 Rust 为.so动态库 |
| JDK | 17 | Gradle 构建 |
💡 建议用 Android Studio 的 SDK Manager 一次性装齐NDK和CMake,否则后续编译会在 NDK 检测阶段失败。
克隆仓库并安装前端依赖
打开终端执行:
git clone https://gitcode.com/gh_mirrors/qz/QzoneArchive cd QzoneArchive npm installnpm install会安装 package.json 中声明的 Vue 3、PrimeVue、Pinia 以及@tauri-apps/cli(Tauri 命令行工具,Android 构建全靠它驱动)。
一条命令把 QzoneArchive 编译到 Android 模拟器
启动一个 Android 模拟器(或在真机上开启 USB 调试),然后执行:
npm run tauri android dev这条命令背后的完整流程是:
- Tauri CLI 校验 src-tauri/tauri.android.conf.json 中的 Android 专属配置(如移动端产品名
QArchive); - 为 4 种 CPU 架构目标(aarch64 / armv7 / i686 / x86_64)交叉编译 Rust 代码,生成
.so库; - Gradle 把 Rust 产物与前端打包成 debug APK,自动安装并启动。
首次运行时如果提示配置,按引导在 Android Studio 中确认 SDK 目录即可。看到模拟器中打开的应用,说明整条 Tauri 移动端构建链路已经通了 ✅
构建签名后的发布版 APK
debug 包只适合开发验证,发给别人安装需要 release 包:
npm run tauri android build --apk- 产物位置:
src-tauri/gen/android/app/build/outputs/apk/universal/release/,默认生成覆盖全部 ABI 的 APK; - 签名:构建产出的是未签名 APK,需用
apksigner配合 keystore 签名后才能分发。仓库根目录自带发布签名密钥文件 release.jks,可自行用于签名。
🚀提速技巧:默认会为 4 种 ABI 各编译一遍 Rust,非常耗时。如果只装手机(基本是 arm64),可以在 src-tauri/gen/android/gradle.properties 中加一行
abiList=arm64-v8a,构建时间能缩短大半。
归档任务界面同样完整移植到了移动端,长任务可随时挂起继续:
Android 侧关键文件速览
生成工程位于src-tauri/gen/android/,理解这几个文件即可掌握 Tauri 的移动端结构:
- AndroidManifest.xml:声明
INTERNET权限(归档必须联网拉取数据)、singleTask启动模式和 FileProvider; - MainActivity.kt:应用唯一入口 Activity,启用全屏边缘到边缘显示;
- RustPlugin.kt:核心构建插件,为每种 ABI 生成 productFlavor 和
rustBuild*任务,并支持abiList/archList/targetList属性裁剪目标; - BuildTask.kt:实际执行
npm run tauri android android-studio-script --target <目标>完成单个架构的 Rust 编译; - src-tauri/src/qlogin.rs:QQ 登录模块,移动端走二维码扫码流程。
权限配置在 src-tauri/capabilities/default.json 中统一管理,桌面与 Android 共用同一套前端能力声明。
常见构建报错与解决方法
| 报错现象 | 原因 | 解决方法 |
|---|---|---|
Android SDK not found | 未设置 SDK 路径 | 在 Android Studio 中完成 SDK 授权,或配置ANDROID_HOME与local.properties的sdk.dir |
NDK not configured | 缺 NDK | SDK Manager 中安装 NDK(Side by side)25+ |
| 构建极慢 | 默认编译 4 种 ABI | gradle.properties中设abiList=arm64-v8a收窄目标 |
cargo找不到目标 | Rust 交叉目标未安装 | Tauri CLI 会自动rustup target add,手动场景可先执行对应命令 |
| 应用无法联网拉取数据 | 未授予 INTERNET 权限 | 检查 AndroidManifest.xml 权限声明是否被改动 |
小结
至此你已经完整走通了QzoneArchive 的 Tauri Android 构建流程:环境装齐 →npm run tauri android dev调试 →npm run tauri android build --apk出包 → 签名安装。Tauri 2 的移动端方案本质上就是"Rust 交叉编译 + Gradle 组装",掌握了这条链路,后续改前端(src/views/)或 Rust 后端(src-tauri/src/)都能用同一套命令快速验证。更多开发细节可参考 website/development/index.md 与 CONTRIBUTING.md 贡献指南。
【免费下载链接】QzoneArchive将 QQ 空间历史动态、照片、视频与互动记录安全归档到本地的桌面 / 移动端工具。项目地址: https://gitcode.com/gh_mirrors/qz/QzoneArchive
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考