2.3.3 积木化拼装的设备开发体验
和传统操作系统不同,HarmonyOS支持积木化拼装。也就是说,HarmonyOS提供一套“积木”,开发者可以根据自己的设备能力、产品特征和业务需求等自主拼装一个操作系统。需要特别指出的是,拼装基于一定的规则,不是随心所欲的。换句话说,不管开发者如何天马行空,拼装后的结果仍然是一个可运行的操作系统。“统一OS,弹性部署”是HarmonyOS区别于其他操作系统的关键特征。业界也有个别操作系统支持对部分系统能力的裁剪,但裁剪难度很大,很多“积木”间由于耦合度高,往往牵一发而动全身,基本难以达成理想的目标。HarmonyOS的目标是为用户带来超级终端的统一体验,这就要求必须为开发者提供“一次开发,多端部署”的用户程序开发体验,不同类型的设备必须使用统一操作系统。否则,超级终端的统一体验便无从谈起。
为了支持“统一OS,弹性部署”,HarmonyOS参考机械装配领域零部件的概念,在软件架构设计中引入部件(part)的概念。部件是指在部署视图中具有相对独立性、能完成一定功能、可独立交付,但是不能独立部署的软件实体。HarmonyOS采用完全部件化的架构设计,并尽可能地减少部件间的耦合,除了基本的核心部件之外,大多数部件均可裁剪。为了支持在不同类型的设备上部署HarmonyOS,并使这些设备能够组成一个超级终端,HarmonyOS定义了BCG(Basic Components Group,基础部件组)和OCG(Optional Components Group,可选部件组)。BCG是不可裁剪的,以确保设备的基础系统能力可用性和跨设备的互操作性。OCG是可裁剪的,以弥补设备能力的差异性。
为了确保用户程序在不同设备之间流转和迁移,要求高级别的设备能够完整地支持低设备的BCG,也就是说低级别设备的BCG是高级别设备BCG的真子集。
为了进一步降低设备开发者的拼装难度,HarmonyOS还为开发者提供了一套工具链——HPM(HarmonyOS Package Manager,HarmonyOS包管理器)。开发者只需要输入特性名称、关键特征或部件名称等信息,HPM就会自动获取相关部件的代码仓及其依赖的代码仓,并下载这些代码仓,完成编译构建等操作。拼装完成后,系统自动完成当前设备的系统能力抽象,这极大降低了开发者的装配难度。