日期 | 更新说明 |
---|---|
2025年8月9日 | 初版发布 |
序言
《临江仙》【宋】晏几道
梦后楼台高锁,酒醒帘幕低垂。去年春恨却来时。落花人独立,微雨燕双飞。
记得小苹初见,两重心字罗衣。琵琶弦上说相思。当时明月在,曾照彩云归。
深夜梦回楼台朱门紧锁,宿醉后醒来帘幕重重低垂。去年的春恨涌上心头时,人在落花纷扬中幽幽独立,燕子在微风细雨里双双翱飞。
还记得与小蘋初次相见,她穿着两重有心字图案的罗衣。她通过琵琶的弦声诉说着相思情意。当时明月如今犹在,曾照着她彩云般的身影回归。
亦或当年初遇Android
开发时早已好几年前了,那小萍或许就是此时的Android
吧,只是今日的Android
在移动互联网末期早已不复当年,当年的初见不同来时。这或许是写这篇文章的缘由了。
前言
简介
Tauri 是一个构建适用于所有主流桌面和移动平台的轻快二进制文件的框架。开发者们可以集成任何用于创建用户界面的可以被编译成 HTML、JavaScript 和 CSS 的前端框架,同时可以在必要时使用 Rust、Swift 和 Kotlin 等语言编写后端逻辑。
tauri2
基于webview
开发,在跨端开发尤其是桌面端上有了新的选择。常见的桌面端开发框架有:Flutter、Electron、Tauri,下面综合对比下;可为你做跨端开发做出新的选择。
特性 | Tauri | Flutter | Electron |
---|---|---|---|
核心框架 | Rust (core) + WebView | Dart + Skia/Impeller renderer | Chromium + Node.js |
UI 开发 | Any HTML/JS/CSS framework | Custom widgets (Dart) | Any HTML/JS/CSS framework |
内存占用 | ~30-50 MB | ~80-150 MB | ~80-150 MB |
平台支持 | Win/macOS/Linux/Android/iOS | Win/macOS/Linux/Android/iOS/Web | Win/macOS/Linux |
学习曲线 | 中 | 中 | 低 |
如何选择
何时选择哪种
- 选择 Tauri 的条件:
- 以桌面优先的应用程序
- 安全关键型软件
- 现有的网络应用程序需要原生扩展
- 需要小巧的二进制文件(例如,实用程序)
- 有 Rust 团队专业知识
选择 Flutter 的条件:
- 以移动优先的开发
- 需要像素级定制的 UI
- 适用于所有平台(包括网络)的统一代码库
- Material/Cupertino 设计系统符合需求
选择 Electron 的条件:
- 仅基于网络的桌面应用程序
- 现有的 Node.js 后端
- 需要 100% 的网络开发工作流程
- 使用网络工具进行快速原型设计
- 仅限桌面分发
快速开始
亦可参见官方文档:Prerequisites
依赖环境
需要提前安装 rust
node.js
的开发环境,这里不再赘述
重点说下Android
的开发环境:
- 下载并安装 Android Studio from the Android Developers website
- 使用
SDK Manager
在Android Studio
安装如下插件:
- Android SDK Platform(这个是默认的,不用单独安装)
- Android SDK Platform-Tools
- NDK (Side by side)
- Android SDK Build-Tools
- Android SDK Command-line Tools
- 配置
ANDROID_HOME
和NDK_HOME
创建项目
这里使用的npm
工具的,可以根据实际情况选择
csharp
# 创建项目
npm create tauri-app@latest
# 构建
npm install
# 初始化 Android 开发
npm run tauri android init
# 启动开发调试
npm run tauri android dev
# 打包构建
npm run tauri android dev
注意,注意,注意
注意事项:创建项目设置app的identifier时,不要用大写,且最好使用小写字母以xxx.xxx.xxx格式,否则在初始化安卓工程的时候会因为identifier问题不通过,会报错
vbnet
error: custom attribute panicked
--> src\lib.rs:7:20
|
7 | #[cfg_attr(mobile, tauri::mobile_entry_point)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: message: `""` is not a valid identifier
error: could not compile `tauri-android-demo` (lib) due to 1 previous error
`Failed to run `cargo build`: command ["cargo", "build", "--package", "tauri-android-demo", "--manifest-path", "D:\Space\rust\tauri\02-tauri-android-demo\src-tauri\Cargo.toml", "--target", "x86_64-linux-android", "--lib"] exited with code 101
Error `Failed to run `cargo build`: command ["cargo", "build", "--package", "tauri-android-demo", "--manifest-path", "D:\Space\rust\tauri\02-tauri-android-demo\src-tauri\Cargo.toml", "--target", "x86_64-linux-android", "--lib"] exited with code 101
如果不小心错误设置了,在下图位置修改就行了,修改之后重新 pnpm tauri android init
初始化安卓工程代码

实名感谢Tauri 2.x 正式版 安卓应用创建、开发环境搭建体验_tauri2-CSDN博客的作者;被坑好久。
下图是npm run tauri info
的环境信息;供给大家参考:
markdown
> tauri-android-demo@0.1.0 tauri
> tauri info
[✔] Environment
- OS: Windows 10.0.22621 x86_64 (X64)
✔ WebView2: 138.0.3351.121
✔ MSVC: Visual Studio Professional 2022
✔ rustc: 1.86.0 (05f9846f8 2025-03-31)
✔ cargo: 1.86.0 (adf9b6ad1 2025-02-28)
✔ rustup: 1.28.1 (f9edccde0 2025-03-05)
✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
- node: 22.14.0
- npm: 10.9.2
[-] Packages
- tauri 🦀: 2.7.0
- tauri-build 🦀: 2.3.1
- wry 🦀: 0.52.1
- tao 🦀: 0.34.0
- @tauri-apps/api : 2.7.0
- @tauri-apps/cli : 2.7.1
[-] Plugins
- tauri-plugin-opener 🦀: 2.4.0
- @tauri-apps/plugin-opener : 2.4.0
[-] App
- build-type: bundle
- CSP: unset
- frontendDist: ../dist
- devUrl: http://localhost:1420/
- framework: Vue.js
- bundler: Vite
运行项目

打包项目
打包完成基本大小 20 多 M,这个是 28M 左右。从开发体验来说,笔者之前没有做过客户端开发,整个过程个人觉得十分流畅和丝滑。


参考资料: