在学习鸿蒙开发的过程中,甚至一些招聘需求中,我们经常会听到这两个词:“鸿蒙南向开发”、“鸿蒙北向开发”。我第一次听到这两个词就“拔剑四顾心茫然”🤔 怎么开发还要分南北?这计算机和地理课又有啥关系?后来随着跟着项目学习逐渐了解,今天我们就来聊聊这两个“黑话”的渊源、含义和背后的深层逻辑。一、上北下南,一目了然
我们都知道地图的设定方向默认都是上北下南左西右东,把地图的概念映射到IT领域,那么一般的架构图画起来,都是应用层(最接近用户的)在上面,而物理层(最远离用户,而最接近物理硬件的)在下面,比如著名的七层协议。我们再把这个映射到鸿蒙开发领域,则面向用户的应用软件,跑在系统上层,所以叫“北向”;连接硬件的驱动、内核,处在系统底层,所以叫“南向”。和地图的上北下南一样,容易理解和记忆。二、那么南北开发到底做什么?
1. 北向开发:应用层的“建筑师”
北向开发就是咱们最熟悉的应用开发,即APP开发——写APP、做UI、实现业务逻辑。application dev
北向开发就是用户“看得见、摸得着”的那部分
2. 南向开发:底层的“奠基者”
南向开发则是设备开发、驱动开发、系统移植——让硬件能驱动起来、让系统适配芯片。device dev。南向开发的成果,北向开发者通常看不到但离不开——没有驱动,甚至应用连屏幕都点不亮!(说起来很多项目的第一步就是点亮)
三、为什么鸿蒙要分“南北”?
那么问题来了,为啥鸿蒙还分了个南向北向,我们熟知的移动操作系统Android和iOS为什么没有南北向的说法?鸿蒙的定位是全场景分布式操作系统,它要连接的不只是手机,而是万物互联的整个生态,更多的终端将是物联网终端。华为或者说鸿蒙的“1+8+N”战略
可以看到,南向和北向并不是一时心血来潮的产物,而是深思熟虑的结果:华为开发者大会2020上,王成录博士也首次系统阐述了南北向开发的概念:
“华为鸿蒙OS 2.0在支持自己设备的同时,还支持一部分第三方设备。我们迈出了使能三方生态的关键一步,鸿蒙系统2.0将开放给所有‘南向’的硬件厂家,‘使能’它们去生产制造、创新鸿蒙生态设备;同时开放给‘北向’的应用开发厂家,让它们基于鸿蒙系统去做更多创新。”
本号前面主要记录了北向开发(音频播放器),后续将会逐步也进行南向开发的总结和笔记,供大家批判参考。