A
Air官方
鸿蒙原生应用的主流架构是双层:ArkTS 层写界面与系统交互,Native 层(C/C++)承担计算与图形。给想入门的同学一篇总览。
▍ArkTS 层管什么
界面(声明式 UI:组件、布局、状态驱动刷新)、系统能力(文件、剪贴板、通知、分享、窗口管理——这些 API 大多只有 ArkTS 一等公民入口)、生命周期(应用前后台、页面路由)、分发与更新(市场包的版本与配置)。你可以把 ArkTS 层理解为应用的脸面与前台。
▍Native 层管什么
上游代码的世界:算法、编解码、图形管线、多线程;性能敏感的一切(每帧的渲染、实时处理);存量资产(Linux 桌面积累的海量 C 与 C++ 库)。Native 层编译成动态库,随应用包分发。
▍两层怎么连
桥(NAPI):ArkTS 调 Native 的函数、Native 回调通知 ArkTS——连接有严格的线程纪律(桥的调用与回调各有归属线程)。数据(共享的文件与目录):配置、资源、缓存——两层按约定路径读写。渲染表面:ArkTS 把一块原生窗口交给 Native 层画(界面嵌原生渲染区的标准形态)。
▍典型的应用形态
全 ArkTS 应用(纯界面应用);双层应用(绝大多数:界面加计算引擎);移植应用是双层的极端形态(界面壳很薄,Native 层是整个桌面软件——Air 系列的 90 个工程都是这个形态:ArkTS 壳加移植的桌面核心)。
▍给新手的路线
先纯 ArkTS 起一个小应用(熟悉声明式 UI 与系统能力);再加一个简单 Native 模块(比如一个 C 写的图像处理函数,走一遍桥接);最后挑战渲染表面集成(把 Native 画的画面嵌进界面)。三步走完,双层架构的全貌就在手里了。
▍常见的坑
主线程阻塞(在 ArkTS 主线程干重活——界面冻结);线程纪律违规(在错误的线程调桥——随机崩溃);数据路径混乱(两层各写各的配置——状态分裂)。这三坑在系列后续各篇都有专题。
有疑问欢迎在本板块直接发帖,我们会逐条回复。
▍ArkTS 层管什么
界面(声明式 UI:组件、布局、状态驱动刷新)、系统能力(文件、剪贴板、通知、分享、窗口管理——这些 API 大多只有 ArkTS 一等公民入口)、生命周期(应用前后台、页面路由)、分发与更新(市场包的版本与配置)。你可以把 ArkTS 层理解为应用的脸面与前台。
▍Native 层管什么
上游代码的世界:算法、编解码、图形管线、多线程;性能敏感的一切(每帧的渲染、实时处理);存量资产(Linux 桌面积累的海量 C 与 C++ 库)。Native 层编译成动态库,随应用包分发。
▍两层怎么连
桥(NAPI):ArkTS 调 Native 的函数、Native 回调通知 ArkTS——连接有严格的线程纪律(桥的调用与回调各有归属线程)。数据(共享的文件与目录):配置、资源、缓存——两层按约定路径读写。渲染表面:ArkTS 把一块原生窗口交给 Native 层画(界面嵌原生渲染区的标准形态)。
▍典型的应用形态
全 ArkTS 应用(纯界面应用);双层应用(绝大多数:界面加计算引擎);移植应用是双层的极端形态(界面壳很薄,Native 层是整个桌面软件——Air 系列的 90 个工程都是这个形态:ArkTS 壳加移植的桌面核心)。
▍给新手的路线
先纯 ArkTS 起一个小应用(熟悉声明式 UI 与系统能力);再加一个简单 Native 模块(比如一个 C 写的图像处理函数,走一遍桥接);最后挑战渲染表面集成(把 Native 画的画面嵌进界面)。三步走完,双层架构的全貌就在手里了。
▍常见的坑
主线程阻塞(在 ArkTS 主线程干重活——界面冻结);线程纪律违规(在错误的线程调桥——随机崩溃);数据路径混乱(两层各写各的配置——状态分裂)。这三坑在系列后续各篇都有专题。
有疑问欢迎在本板块直接发帖,我们会逐条回复。
楼主
7 天前