网站换程序 搜索引擎,济南手机网站建设专业定制,济南手机网站建设,哪些网站做的好处和坏处1 “你日渐平庸#xff0c;甘于平庸#xff0c;将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的#xff0c;那为什么不能是我呢?”——科比布莱恩特 3. “你那么憎恨那些人#xff0c;和他们斗了那么久#xff0c;最终却要变得和他们一样#xff0c;… 1 “你日渐平庸甘于平庸将继续平庸。”——《以自己喜欢的方式过一生》 2. “总是有人要赢的那为什么不能是我呢?”——科比·布莱恩特 3. “你那么憎恨那些人和他们斗了那么久最终却要变得和他们一样人世间没有任何理想值得以这样的沉沦作为代价。”——马尔克斯《百年孤独》 4. “如果结果不如你所愿就在尘埃落定前奋力一搏。”——《夏目友人帐》 5. “人有逆天之时天无绝人之路。”——《醒世恒言》 6. “有些事不是看到了希望才去坚持而是因为坚持才会看到希望。”——《十宗罪》 7. “维持现状意味着空耗你的努力和生命。”——纪伯伦 Tauri技术教程 * 第四章 Tauri的基础教程 第二节 Tauri的核心概念 上 前言
本章节阐述了Tauri技术中的核心概念内容理解起来较为苦涩但却为Taui应用的概念部分了解这些概念后你将对Tauri的技术原理有一个较深的理解为你后续开发应用和进行插件的开发奠定基础初次理解较为困难有一定的编语言程基础可较为轻松本章节分为上下2个部分分别阐述了Tauri的五个核心部分
结构进程模型App sizeIPC安全
上部分介绍了Tauri的骨架结构、进程模型、应用大小配置下部分介绍了Tauri的ipc通信模型和安全相关的概念和配置。
学习和理解建议咋一看若隐若现再回眸两不相识重逢时原是弹丸之丘
推荐
Koi技术教程-Tauri基础教程-第二节 Tauri的核心概念 下 Koi技术教程-Tauri-第二章 Tauri的业务架构 Koi技术教程-Tauri-第三章 Tauri的搭建环境
一. 概述
Tauri的核心概念是开发人员利用Tauri进行编程的核心了解Tauri的核心概念不仅有助于我们更好的理解它的运行原理也为我们在实际的业务开发中使用它提供支持。它的核心概念体系包含一下五个部分
architecture 结构process Model 流程模块处理app sizeIPCsecurity
官方文档https://tauri.app/concept/
二. Architecture 结构
本章节我们将了解到Tauri的结构及生态系统。
Tauri 是一个多语言的通用工具包它使得我们借助rust及webview来构建计算机程序它使用“wry”和“tao”来完成对操作系统进行系统调用的繁重工作通过 js api和rust api来制作 WebView OS应用程序。
1. Tauri 架构图 此图来自官方文档。
由图中内容可以看到Tauri由2大内容组成“upstream crates” 和 “core ecosystem” 构成。下面我们来了解下它们的具体内容。
1. updtream crates
Tauri 应用的 updtream crates 主要包含2个组成部分Tao 和 wry
TAO: 用于创建和管理应用窗体。它是RUST中跨平应用程序窗口的创建库支持Windows、macOS、Linux、iOS 和 Android是winit的一个分支在tauri中进行了扩展增加了菜单和系统托盘。wry作为接口用于链接 webview和窗体wry是Rust中的跨平台WebView渲染库支持所有主流桌面平台例如 Windows、macOS 和 Linux。Tauri 使用 WRY 作为抽象层负责确定使用哪个 WebView以及如何进行交互。抹平平台差异暴露统一的上层 API。
2. core ecosystem
core 是Tauri的核心内容它包含6个内容分别如下
tauri-runtime 它负责与较低级别的webview库之间交互的粘合层。tauri-macros 将 upstream crate 作为上下文处理程序和铃木创建宏 tauri-codegentauri-utils 提供通用的工具如解析配置文件、检测平台三元组、注入 CSP 和管理资产等tauri-runtime-wry 与wry通过接口直接进行系统级交互例如打印、监视器检测和其他与窗口相关的任务tauri-codegen 负责创建应用内容如应用程序图标以及系统托盘tauri.conf.json在编译时解析并生成 Config 结构。tauri-build 应用构建
其中 tauri-runtime、tauri-macros、tauri-utils 构成了 tauri。
tauri 是将所有的内容最后那个何在一起的主要包。它将运行时、宏、实用程序和 API 整合到一个最终产品中。它tauri.conf.json在编译时读取文件以引入功能并进行应用程序的实际配置它在运行时处理脚本注入用于 polyfill/原型修订托管用于系统交互的 API甚至管理更新过程。
3. 常用的工具库和插件
工具库
apijavascript/typescript 创建cjs或者esm端点供您导入到前端框架中以便 Webview 可以调用和监听后端活动。bundler(rust/shelle) 构建 Tauri 应用的库。目前支持 macOS、Windows 和 Linux 等cli.rs(rust) Rust 可执行文件提供了 CLI 所需的所有必要活动的完整接口。cli.js(javascript) 生成 npm 包的包装器create-tauri-app(javascript) 创建应用
插件库
tauri-actiontauri-vscodevue-cli-plugin-tauri
4. 插件
Tauri 插件指南这是重点后续会专门说明
一般来说插件是由第三方编写的尽管可能有官方支持的插件。插件通常做三件事
使 Rust 代码能够做“某事”。提供接口粘合剂使其易于集成到应用程序中。提供用于与 Rust 代码交互的 JavaScript API。
三. Process Model 流程模型
1. 流程概述
在 GUI 应用程序的早期通常使用单个进程来执行计算、绘制界面并对用户输入做出反应。往往一个应用程序组件的故障会导致整个应用程序崩溃。多进程模型的设计使得应用程序在不同的进程中运行不同的组件。这可以更好地利用现代多核 CPU并创建更安全的应用程序。一个组件的崩溃不再影响整个系统因为组件被隔离在不同的进程中。如果某个进程进入无效状态我们可以轻松地重新启动它。
另外我们可以使用最小特权原则来为每个进程分配最少的执行权限刚好够它们完成工作来限制潜在漏洞的影响范围。
2. 核心流程 此图来自官网
Tauri 应用程序都有一个核心进程它充当应用程序的入口点也是唯一可以完全访问操作系统的组件。主要职责是使用该访问权限来创建和编排应用程序窗口、系统托盘菜单或通知。它还通过核心进程管理所有进程间通信让您可以在一个中心位置拦截、过滤和操作 IPC 消息。核心进程还应负责管理全局状态例如设置或数据库连接。这使您可以轻松地在窗口之间同步状态并保护您的业务敏感数据不被前端窥探。
3. WebView 进程
核心进程本身并不渲染实际的用户界面 (UI)它会启动 WebView 进程利用操作系统提供的 WebView 库。WebView 是一个类似于浏览器的环境可执行 HTML、CSS 和 JavaScript。
目前Tauri 在 Windows 上使用Microsoft Edge WebView2在macOS 上使用WKWebView 在 Linux 上使用webkitgtk。↩
4. 应用启动后的进程 四. App size
您可以通过修改或者引入依赖库的方式调整您的应用程序的二进制文件大小如cargo.toml 中
[profile.dev]
incremental true # Compile your binary in smaller steps.[profile.release]
codegen-units 1 # Allows LLVM to perform better optimization.
lto true # Enables link-time-optimizations.
opt-level s # Prioritizes small binary size. Use 3 if you prefer speed.
panic abort # Higher performance by disabling panic handlers.
strip true # Ensures debug symbols are removed.以下是一些常用到的配置参考 incremental: 以较小的步骤编译二进制文件. codegen-units以编译时优化为代价来加快编译时间。 lto启用链接时间优化。 opt-level确定编译器的重点。用于3优化性能、z优化大小以及s介于两者之间的某些方面。 panic: 通过消除恐慌来减少尺寸。 strip从二进制文件中去除符号或调试信息。 rpath通过将信息硬编码到二进制文件中来帮助查找二进制文件所需的动态库。 trim-paths从二进制文件中删除潜在的特权信息。 rustflags 根据每个配置文件设置 Rust 编译器标志。 -Cdebuginfo0是否应在构建中包含调试信息符号。-Zthreads8增加编译期间使用的线程数量。
接读Koi技术教程-Tauri基础教程-第二节 Tauri的核心概念 下