基于 Tauri 实现的 Android 程序 Demo
| docs | ||
| src | ||
| src-tauri | ||
| .gitignore | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Tauri Android 能力演示 App
一个基于 Tauri v2 的示例应用,用于集中演示 Tauri 在 Android 平台上可调用的常见原生能力。前端使用 Vite + TypeScript(无框架),后端为 Rust。
演示的能力
| 卡片 | 演示内容 | 依赖 |
|---|---|---|
| Rust 命令调用 | 前端 invoke 调用 Rust 侧 greet / system_summary 命令 |
@tauri-apps/api |
| 设备与系统信息 | 读取平台、系统版本、架构、主机名 | plugin-os |
| 原生对话框 | 消息框、确认框、文件选择器 | plugin-dialog |
| 系统通知 | 发送系统通知(含运行时权限申请) | plugin-notification |
| 文件读写 | 在应用私有目录读写文本文件 | plugin-fs |
| 剪贴板 | 读写系统剪贴板 | plugin-clipboard-manager |
| HTTP 请求 | 发起原生网络请求,绕过浏览器同源限制 | plugin-http |
目录结构
tauri-demo/
├── index.html # 页面骨架
├── package.json # 前端依赖与脚本
├── vite.config.ts # Vite 配置(固定端口 1420)
├── tsconfig.json
├── src/ # 前端源码
│ ├── main.ts # 入口:定义并挂载所有能力卡片
│ ├── ui.ts # 卡片渲染组件
│ └── styles.css
└── src-tauri/ # Rust 后端与 Tauri 配置
├── Cargo.toml
├── build.rs
├── tauri.conf.json # 应用配置(含 bundle、identifier)
├── capabilities/ # 权限(capability)声明
├── icons/ # 应用图标
└── src/
├── lib.rs # 命令与插件注册、移动端入口
└── main.rs # 桌面端入口
环境要求
构建 Android APK 需要以下工具链:
- Node.js 18+(当前环境:22)
- Rust(
rustup+cargo)——当前环境未安装 - JDK 17——已就绪:
C:\Users\occul\SynologyDrive\bin\jdk-17.0.10 - Android SDK——已就绪:
C:\Users\occul\SynologyDrive\bin\android-sdk-windows - Android NDK——当前环境缺失,需安装
- Android Platform API 33+ 与对应 build-tools——当前最高仅
android-30,需补装
待补充安装项
- Rust 与 Android 目标
# 安装 rustup(https://rustup.rs),随后添加 Android 目标: rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android - Android NDK 与新版平台(用 SDK Manager 或 sdkmanager)
sdkmanager "ndk;26.1.10909125" "platforms;android-34" "build-tools;34.0.0"
环境变量
构建前需设置(PowerShell 会话内示例):
$env:JAVA_HOME = "C:\Users\occul\SynologyDrive\bin\jdk-17.0.10"
$env:ANDROID_HOME = "C:\Users\occul\SynologyDrive\bin\android-sdk-windows"
# NDK_HOME 指向实际安装的 NDK 版本目录
$env:NDK_HOME = "$env:ANDROID_HOME\ndk\26.1.10909125"
$env:Path = "$env:JAVA_HOME\bin;$env:USERPROFILE\.cargo\bin;$env:Path"
构建与运行
# 1. 安装前端依赖
npm install
# 2. 桌面端预览(可选,用于快速验证 UI 与命令)
npm run tauri dev
# 3. 初始化 Android 工程(首次执行,生成 src-tauri/gen/android)
npm run android:init
# 4. 连接设备/模拟器后实时调试
npm run android:dev
# 5. 打包 APK / AAB
npm run android:build
产物位于 src-tauri/gen/android/app/build/outputs/ 下。
说明
- HTTP 卡片默认请求
https://httpbin.org/get,权限范围在src-tauri/capabilities/default.json中限定为https://*。 - 通知能力在 Android 13+ 需要运行时授权,首次点击会弹出系统权限框。
- 文件读写位于应用私有数据目录(
BaseDirectory.AppData),不需要额外存储权限。