A
Air官方
有些桌面软件的架构天然分两层:一个处理协议与逻辑的核心,加一个纯界面前端。远程文件传输工具(WinSCP 内核类)就是典型——协议栈与传输引擎和界面完全解耦。对这类软件,Air 系列采用双引擎分离路线:核心作为无头库在 native 层跑,界面整个用 ArkUI 重写。
▍原理
把上游的核心逻辑(协议实现、会话管理、传输队列)编译成静态或动态库,不链接任何 GUI;ArkTS 壳通过 NAPI 调用核心接口,用系统组件搭界面。核心不懂界面,界面不懂协议,两层之间的边界是明确的数据结构与方法调用。
▍这条路线的前提
前提是核心与界面解耦得足够干净。评估方法:看上游代码里协议层是否可以独立编译;看核心是否依赖界面线程的消息循环;看数据模型是否被界面层污染。远程传输、命令行工具转 GUI、一些有服务端形态的软件,解耦度普遍好。
▍工程要点
第一,核心的状态回吐要设计成事件或轮询接口,别让核心反手调界面的回调(会引入线程反向依赖)。第二,长任务(传输、扫描)在 native 侧起线程执行,ArkTS 主线程绝不阻塞,跨线程通知用线程安全函数机制。第三,界面重写要忍住照抄桌面布局的冲动,按平板与手机的交互范式重新组织——树形目录、双栏拖拽这些桌面隐喻要转译成触摸友好的形态。
▍优缺点
优点:界面原生体验天花板最高(动画、手势、输入法全部系统级);核心逻辑零改动跟进上游;内存与体积都可控。缺点:界面等于重写一遍,工作量和核心的界面耦合度成正比;上游界面更新时不会自动跟进。
▍真实用例
Air 系列的远程传输工具工程用无头核心加 ArkUI 界面落地,传输、目录浏览、会话管理全流程可用;另有一个纯 ArkUI 应用从零构建,验证了不带任何上游的轻量形态。两者记录都在适配全记录系列里。
免费无广告的安装包可以在官网下载体验。
▍原理
把上游的核心逻辑(协议实现、会话管理、传输队列)编译成静态或动态库,不链接任何 GUI;ArkTS 壳通过 NAPI 调用核心接口,用系统组件搭界面。核心不懂界面,界面不懂协议,两层之间的边界是明确的数据结构与方法调用。
▍这条路线的前提
前提是核心与界面解耦得足够干净。评估方法:看上游代码里协议层是否可以独立编译;看核心是否依赖界面线程的消息循环;看数据模型是否被界面层污染。远程传输、命令行工具转 GUI、一些有服务端形态的软件,解耦度普遍好。
▍工程要点
第一,核心的状态回吐要设计成事件或轮询接口,别让核心反手调界面的回调(会引入线程反向依赖)。第二,长任务(传输、扫描)在 native 侧起线程执行,ArkTS 主线程绝不阻塞,跨线程通知用线程安全函数机制。第三,界面重写要忍住照抄桌面布局的冲动,按平板与手机的交互范式重新组织——树形目录、双栏拖拽这些桌面隐喻要转译成触摸友好的形态。
▍优缺点
优点:界面原生体验天花板最高(动画、手势、输入法全部系统级);核心逻辑零改动跟进上游;内存与体积都可控。缺点:界面等于重写一遍,工作量和核心的界面耦合度成正比;上游界面更新时不会自动跟进。
▍真实用例
Air 系列的远程传输工具工程用无头核心加 ArkUI 界面落地,传输、目录浏览、会话管理全流程可用;另有一个纯 ArkUI 应用从零构建,验证了不带任何上游的轻量形态。两者记录都在适配全记录系列里。
免费无广告的安装包可以在官网下载体验。
楼主
7 天前