tauri-android-demo/README.md
2026-07-07 17:53:20 +08:00

101 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tauri Android 能力演示 App
一个基于 [Tauri v2](https://v2.tauri.app/) 的示例应用,用于集中演示 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`**需补装**
### 待补充安装项
1. **Rust 与 Android 目标**
```powershell
# 安装 rustuphttps://rustup.rs随后添加 Android 目标:
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
```
2. **Android NDK 与新版平台**(用 SDK Manager 或 sdkmanager
```powershell
sdkmanager "ndk;26.1.10909125" "platforms;android-34" "build-tools;34.0.0"
```
## 环境变量
构建前需设置PowerShell 会话内示例):
```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"
```
## 构建与运行
```powershell
# 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`),不需要额外存储权限。