OpenHarmony轻量设备开发理论与实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.3 OpenHarmony南向开发与北向开发

1.OpenHarmony南向开发与北向开发的含义

南向开发和北向开发都是业内的专有名词。

首先,什么叫南向开发呢?南向开发指的是软硬件结合的智能终端设备开发,也就是我们通常所说的嵌入式开发。在一般情况下,南向开发会使用C语言或C++语言,它注重的是硬件操作和能力封装。比如,控制可编程LED(Light Emitting Diode,发光二极管)灯的亮灭(硬件操作)、读取按键的状态(硬件操作)、控制蜂鸣器发声(硬件操作)、为数字温湿度传感器编写驱动程序(能力封装)、编写OLED(Organic Light-Emitting Diode,有机发光二极管)显示屏驱动程序(能力封装)等。

北向开发在通常情况下指的是纯软件的应用开发。当然,我们也可以简单地将其理解为App开发。在一般情况下,北向开发会用到Java、JavaScript、TypeScript、eTS等语言,它注重的是业务逻辑。

北向开发的目标是实现应用的功能,从而满足客户的需求,这是南向开发和北向开发的主要区别。其实,有一个很好记的口诀,就是“上北下南”。上层开发属于北向开发,下层开发属于南向开发,这就叫“上北下南”。怎么样,是不是很容易就记住了?

2.OpenHarmony的系统类型

OpenHarmony是一个跨设备的操作系统,可以运行在不同体量的硬件设备上。如果硬件资源有限,OpenHarmony就会变得很精简;如果硬件资源丰富,OpenHarmony就会变得很庞大。于是,OpenHarmony就形成了不同类型的系统。在入门阶段,第一时间搞清楚OpenHarmony的系统类型是很重要的,这与您去星巴克买咖啡要分清楚“中杯、大杯、超大杯”是一个道理。

目前,OpenHarmony分为轻量系统、小型系统和标准系统三种类型。

(1)轻量系统(Mini System)。轻量系统面向的是MCU(Microcontroller Unit,微控制单元)类型的处理器,比如Arm Cortex-M、RISC-V的32位处理器等。我们都知道,这类处理器的硬件资源是极其有限的。OpenHarmony的轻量系统被打造得“身轻如燕”,支持的设备的最小内存可以低至128KB,同时可以做到提供多种轻量级的网络协议、轻量级的图形框架和丰富的IoT(Internet of Things,物联网)总线读写部件等。仅凭128KB的内存就可以做这么多事情,可谓是“麻雀虽小,五脏俱全”。

轻量系统面向的产品其实很丰富,比如智能家居领域的连接类模组、传感器类的设备,以及穿戴类的设备等。

在这三种类型的系统中,轻量系统相对简单易学、硬件成本相对较低,是入门OpenHarmony的首选系统类型,也是本书主要面向的系统。典型的轻量系统产品如图1-2所示。

(2)小型系统(Small System)。小型系统面向应用处理器,比如Arm的Cortex-A处理器。这时,OpenHarmony的小型系统支持的设备的最小内存是1MB。在轻量系统的基础上,小型系统可以提供更好的安全能力、标准的图形框架和视频编解码能力等。

小型系统面向的产品主要是智能家居领域的IP Camera、电子猫眼、路由器,以及智慧出行领域的行车记录仪等。典型的小型系统产品如图1-3所示。

图1-2 典型的轻量系统产品

图1-3 典型的小型系统产品

(3)标准系统(Standard System)。与小型系统一样,标准系统也面向应用处理器,比如Arm的Cortex-A处理器。在一般情况下,OpenHarmony标准系统支持的设备的最小内存是128MB。标准系统在小型系统的基础上可以提供更强的交互能力、3D的GPU(Graphics Processing Unit,图形处理器)加速和硬件合成能力等,还提供了更多的控件,以及动效更丰富的图形能力和完整的应用框架。

标准系统面向的产品包括高端冰箱的显示屏、汽车的中控屏等,如图1-4所示。

图1-4 典型的标准系统产品