Tauri 2 安卓开发初体验

日期 更新说明
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的开发环境:

  1. 下载并安装 Android Studio from the Android Developers website
  2. 使用SDK ManagerAndroid Studio安装如下插件:
  • Android SDK Platform(这个是默认的,不用单独安装)
  • Android SDK Platform-Tools
  • NDK (Side by side)
  • Android SDK Build-Tools
  • Android SDK Command-line Tools
  1. 配置 ANDROID_HOMENDK_HOME

创建项目

v2.tauri.app/zh-cn/start...

这里使用的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 左右。从开发体验来说,笔者之前没有做过客户端开发,整个过程个人觉得十分流畅和丝滑。


参考资料:

相关推荐
_風箏8 分钟前
SpringBoot【集成p6spy】使用p6spy-spring-boot-starter集成p6spy监控数据库(配置方法举例)
后端
_風箏9 分钟前
SpringBoot【集成Druid】监控数据库报错 Failed to bind properties under ‘‘ to javax.sql.DataS
后端
shepherd11110 分钟前
深入解析Flowable工作流引擎:从原理到实践
java·后端·工作流引擎
凯哥197014 分钟前
vLLM快速入门及安装指南
后端
用户83562907805115 分钟前
使用C#轻松提取PDF图片:Spire.PDF for .NET实战教程
后端·c#
凯哥197016 分钟前
UV 工具安装与国内镜像源配置指南
后端
用户6972449002623 分钟前
scala安装和基本使用
后端
该用户已不存在1 小时前
Windows 开发环境这么难配,为什么还有那么多人在用?
前端·windows·后端
二闹1 小时前
告别卡顿!用Python生成器轻松处理海量数据的秘籍
后端·python
zjjuejin1 小时前
Docker 镜像管理完全指南:从拉取到迁移的终极实践
后端·docker