基于 Tauri 实现的 Android 程序 Demo
Go to file
2026-07-07 17:53:20 +08:00
docs 初始化,可用。 2026-07-07 17:53:20 +08:00
src 初始化,可用。 2026-07-07 17:53:20 +08:00
src-tauri 初始化,可用。 2026-07-07 17:53:20 +08:00
.gitignore 初始化,可用。 2026-07-07 17:53:20 +08:00
index.html 初始化,可用。 2026-07-07 17:53:20 +08:00
package-lock.json 初始化,可用。 2026-07-07 17:53:20 +08:00
package.json 初始化,可用。 2026-07-07 17:53:20 +08:00
README.md 初始化,可用。 2026-07-07 17:53:20 +08:00
tsconfig.json 初始化,可用。 2026-07-07 17:53:20 +08:00
vite.config.ts 初始化,可用。 2026-07-07 17:53:20 +08:00

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
  • Rustrustup + 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 目标
    # 安装 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
    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),不需要额外存储权限。