借助 AI Agent 等工具的辅助,即便是非开发人员也能轻松分析应用的底层架构并找到改造思路。在盘点了我日常高频使用的软件后,发现许多基于 Web 技术构建的应用,其实只需简单几步就能实现 Windows ARM64 原生运行。
不少高频使用的在线服务(如部分社交媒体、轻量网页工具等)并未提供官方的 Windows 桌面客户端。虽然直接在浏览器中打开也能使用,但在动辄几十个标签页中来回翻找不仅繁琐,也容易误关。如果能将这些网页服务直接封装成独立的桌面应用,既能拥有专属的任务栏图标和独立窗口,又几乎不占额外资源。
好在,如今大多数网站都采用了响应式设计,当使用 Google Chrome 或 Microsoft Edge 等 Chromium 内核浏览器访问时,大概率会提示你可以直接将其安装为 PWA(渐进式 Web 应用)。以微博为例,在浏览器中打开移动端网页,地址栏右侧便会出现「安装 微博 Lite」提示,点击安装后,系统不仅会在桌面生成独立图标,后续打开时也会直接以无浏览器边框的独立窗口运行,体验非常清爽。
不过 PWA 依然受限于浏览器本身的进程管理,无法脱离浏览器独立分发,也缺少更深入的窗口定制能力。如果想将任意网页真正打包成一个独立的 Windows ARM64 原生安装包,开源工具 Pake 会是更好的选择。an
熟悉 Pake 的读者可能知道它支持通过 GitHub Actions 在云端免配置打包。不过目前官方的云端工作流主要针对 x86/x64 平台,并未提供 Windows ARM64 的构建选项。因此,要想获得真正的 ARM 原生安装包,我们需要在本地安装 Pake CLI 工具自行编译。
首先在电脑中安装 Node.js、Rust 工具链与 LLVM,这是本地使用 Pake CLI 编译的前置环境:
安装完成后打开 Windows 终端,在 PowerShell 下执行以下命令安装 Pake CLI:
npm install -g pake-cli
全局安装完成后,即可调用 CLI 工具创建桌面应用。例如新建一个工作目录,并在该目录下打包 Instagram 客户端:
pake https://www.instagram.com/ --name "Instagram"

执行命令后,Pake 会自动获取网站图标并开始编译。构建完成后,终端会输出打包好的 .msi 安装包路径(通常位于 npm 全局包目录下):
C:\Users\你的用户名\AppData\Roaming\npm\node_modules\pake-cli\src-tauri\target\aarch64-pc-windows-msvc\release\bundle\msi\
找到并双击该 .msi 文件,即可像安装普通软件一样将其实装到系统中
与动辄占用数百兆内存的客户端相比,基于 Tauri 架构的 Pake 可以直接借助 Windows 系统内置的 WebView2 轻量渲染。生成的应用不仅安装包极小、内存占用低,还能在 ARM 架构下实现真正的免转译原生运行。
Pake CLI 还支持自定义窗口尺寸、指定本地图标、注入自定义样式与脚本等高级功能,具体可查阅 Pake 官方文档,并借助 AI 调整,所以在此不再赘述。
将网页直接打包的前提是有可用的 Web 地址。但在更多时候,我们手里只有一个官方提供的 x64 安装包,无法直接套用网页封装方案。不过,如果分析这些软件的实现方式就会发现,其中相当一部分并非传统的 Windows C/C++ 原生程序,而是基于 Electron 框架构建的容器化应用。
所以对于这类软件,我们只需替换其底层的运行环境,就能直接将现有的 x64 程序重构成纯正的 ARM64 原生版本。
要改造这类应用,首先需要确认它是否基于 Electron。打开软件的解压目录或安装路径,如果发现以下特征,基本可以判定它就是基于 Electron 的:
为什么 Electron 应用可以低成本改造成 ARM64 原生?原因在于其独特的架构设计:
Electron 本质上是由 「运行时外壳(Chromium 渲染内核 + Node.js)」 与 「业务包(app.asar)」 组成的。官方发布的 x64 安装包,仅仅是其外壳编译成了 x64 机器指令;而 app.asar 内部封装的界面与交互逻辑,本质上是跨平台的 JavaScript/HTML/CSS 代码。
只要软件没有依赖特定架构的 C++ 原生扩展(Native Addons),我们只需保留原软件的 app. asar,为其换上一个 ARM64 原生版本的 Electron 外壳,就能让它摆脱转译、直接以原生状态流畅运行。