ITPub博客

首页 > 数据库 > 数据库开发技术 > 鸿蒙原生应用框架及研制成本分析

鸿蒙原生应用框架及研制成本分析

数据库开发技术 作者:LinuxWizard 时间:2025-07-10 14:04:14 0 删除 编辑

  近日,鸿蒙版微信发布了1.0.8.35版本,增强了群管理的灵活性和便捷性,同时增加了更多的互动和沟通功能。从微信Harmony OS平台更新日志来看,自2025年1月10日鸿蒙版微信1.0.3版本正式上线华为鸿蒙应用市场以来快速迭代,5个月历经6个大版本发布,更新方向从常用功能的支持转向了对用户体验的优化,标志着鸿蒙版微信功能基本完善,进入功能优化阶段。鸿蒙版微信开发团队用不到一年的研发时间,完成了相当于微信 14 年的发展历程,本文以此为契机尝试浅析鸿蒙原生应用开发成本及收益,希望能为大家了解鸿蒙、上手鸿蒙项目提供些许帮助。

  华为历经GMS、芯片、EDA、操作系统等一系列断供事件,变相加速了麒麟、昇腾、鲲鹏系列芯片产品的落地。软件方面以华为为贡献主体,由开放原子基金会孵化及运营的OpenHarmony(开源鸿蒙) 和OpenEuler(欧拉)等开源项目也构建了我国自主可控的操作系统体系。HarmonyOS(鸿蒙)是华为基于OpenHarmony开发的商业发行版操作系统,用于构建“1+8+N”全场景生态(“1”为核心,如手机设备;“8” 为协同网络,如PC、平板、智慧屏、手表、车机、耳机、音箱、眼镜等;“N”为生态扩展,通过开放鸿蒙智联接入)。

  鸿蒙生态的完善离不开开发者的积极参与人才的培养,华为开发者联盟数据截止2024年初,鸿蒙校园公开课进入 135 所高校,286 家企业参加鸿蒙生态学堂,达成了 150 多个产学合作项目。目前已有23家985高校、46家211高校已开设或即将开设HarmonyOS相关课程,为鸿蒙生态的完善注入源源不断的新生力量。

  竞赛方面除了官方举办的华为HarmonyOS创新赛和华为ICT大赛外,“鸿蒙应用开发”成为众多顶级赛事中的重要赛项,包括“一带一路”暨金砖国家技能发展与技术创新大赛、全国职业技能大赛、全国大学生网络与信息技术大赛、中国成都国际软件大赛以及CCF开源创新大赛等赛事均设有鸿蒙相关赛项。

  用户画像显示鸿蒙用户中高端商务用户占比提升至50%以上、Z世代用户增长率达300%,由于近年来受全球供应链波动及自主可控政策影响,预计高净值用户中鸿蒙用户的占比将进一步提升。当前鸿蒙生态正在加速发展,虽然鸿蒙应用开发已纳入部分高校课程,突如其来的市场需求导致市场人才相对紧缺,已有部分地区人社部门推动鸿蒙相关公益培训,商业培训机构先后启动鸿蒙相关人才的培养,预计年内鸿蒙应用开发者数量将加速上涨。

鸿蒙官方为软件开发生命周期提供了全套的开发工具,覆盖从设计、开发、编译、测试、调优、上架全流程操作,包括:

  • UI设计套件(UI Design Kit)
  • HarmonyOS 应用及元服务的集成开发环境(DevEco Studio)
  • 鸿蒙生态的应用开发语言(ArkTS)
  • 分布式应用界面的声明式 UI 开发框架(ArkUI)
  • 华为自研的统一编程平台(ArkCompiler)
  • 一站式的应用测试服务平台(DevEco Testing)
  • 调优工具(DevEco Profiler)
  • 华为应用市场上架(AppGallery Connect)
  • 其他更多工具及Kit

通过公开访谈内容分析,当前鸿蒙应用开发成本较高的问题主要体现以下几个方面

  1. 版本迭代太快带来的兼容性适配工作量上升;
  2. “1+8+N”工程化体系带来的学习成本;
  3. 对新型编程理念的适应;
  4. 安全等级提升带来的成本增加。

1. 版本迭代迅速

  自2019年8月9日华为开发者大会正式发布鸿蒙1.0系统以来,目前已发布到HarmonyOS 6版本(鸿蒙 2.0: 2020 年 9 月 10 日发布;鸿蒙 3.0: 2022 年 7 月 27 日发布;鸿蒙 4.0: 2023 年 8 月 4 日发布;HarmonyOS NEXT(鸿蒙 5.0): 2024 年 10 月 22 日发布;HarmonyOS 6: 2025年6月20日发布),目前已经从普通的操作系统演进为多端部署、全场景协同、原生智能的AI操作系统。

  推测在鸿蒙6版本以前导致系统更新兼容性的问题可能源于鸿蒙系统对安卓系统的逐步取代,这点可以在OpenHarmony项目技术架构中可以看到,OpenHarmony操作系统技术架构采用多内核设计,内核抽象层(KAL,Kernel Abstract Layer)屏蔽了下层的内核差异,支持多种内核同时运行,下图中的LiteOS便是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统(LiteOS同时也是鸿蒙系统所采用的内核)。正是采用了这种多内核设计,早期的鸿蒙系统可以同时运行Linux Kernel和LiteOS两种内核,使得系统有了兼容安卓应用的可能,也造就了鸿蒙系统发展的不同阶段(鸿蒙、纯血鸿蒙、原生鸿蒙),逐步将Linux Kernel剔除的同时不再兼容安卓应用以获得极致的鸿蒙体验。

cke_14708.png

图1 OpenHarmony技术架构图

  由于对安卓系统的逐步替代需要进行大量的底层代码变更,可能导致了系统API的频繁变动,当前鸿蒙已进化到不再兼容安卓应用的版本,推测鸿蒙系统底层API相较于之前阶段会相对稳定。

2. “1+8+N”工程化体系

  2020年巴塞罗那华为发布会上华为着重强调了“1+8+N”战略,面向未来打造5G全场景智慧生活,造就全场全场景统一操作系统,使鸿蒙系统同时运行在手机、车机、音箱、耳机、手表/手环、平板、大屏、PC、AR/VR等泛IOT设备上。

为了降低应用在多设备重复开发的成本,解决同一应用在商店上架适用于不同设备设备的问题,鸿蒙设计了”一套代码工程,一次开发上架,多端按需部署”的“一多”方案,从不同设备显示规格、设备能力的工程化角度出发,鸿蒙从页面适配、功能兼容和代码部署三个方面提供了相应的解决方案,即“工程级一多”、“功能级一多”、“界面级一多”,同时结合特有的应用工程结构和开发态重新定义了鸿蒙应用的工程化体系。

(1)“工程级一多”

  鸿蒙应用工程结构采用三层架构设计包括公共能力层、基础特性层和产品定制层,结合工程管理与包管理能力,实现工程代码的统一管理与多设备按需部署。

公共能力层:公共能力层存放工程内公共基础能力,包括公共UI组件、数据管理、外部交互和工具库等共享功能,应用可调用这些公共能力。公共UI组件提供可高度复用的通用组件,确保为多端用户提供一致的体验,通过标准化友好界面(如提示、警告、加载状态等),快速实现常见交互需求,提升开发效率与用户满意度;数据管理负责应用数据、系统数据的存储与访问,通过统一接口简化读写操作,以集中式管理提升维护效率,保障数据一致性与安全性;外部交互负责应用与外部系统(网络请求、文件 / 设备 I/O 等)的交互,通过统一接口简化操作,助力开发者高效实现网络通信、数据存储和硬件接入,加速开发流程并保障程序稳定性与性能;工具库可提供一系列常用工具函数和类的封装。

  基础特性层:基础特性层位于公共能力层之上,用于存放独立的功能 UI 和业务逻辑,为产品定制层提供稳健且丰富的基础功能支持,增强系统的可扩展性和可维护性。

  产品定制层:产品定制层位于基础特性层和公共能力层之上,提供应用的入口,是用户直接互动的界面,具体功能实现依赖于基础特性层和公共能力层的能力,各功能模块    独立运作,专注于满足不同设备或使用场景的个性化需求。包括UI设计、资源和配置,以及特定场景的交互逻辑和功能特性。

  为适应现代大型软件工程,鸿蒙工程进行了模块化设计,每个功能模块都是独立单元,具有清晰定义的接口和职责,能够与其他模块交互以完成复杂任务,原则上要求将应用拆分为多个功能模块,各模块独立负责特定功能,支持独立开发、编译、部署及跨设备灵活组合调用。模块分为Ability类型(HAP)和Library类型(HAR/HSP),应用市场分发应用包时可精确到模块粒度的原子化分发。

  功能特性类型模块(Ability):Ability类型模块编译后生成HAP(Harmony Ability Package)包,可细分为entry类型的主模块和feature类型的特性模块,entry类型模块作应用入口在同一类型的设备上仅允许存在一个;feature类型的特性模块支持被其他模块调用,可存在一个或多个。

   静态共享库(Static Library):静态共享库是Library类型的一种,编译后生成静态共享包HAR(Harmony Archive),可以独立打包发布到ohpm(ohpm 包管理器可调用中心仓库或者ohpm-repo轻量级 HarmonyOS 三方库私有仓)供其他应用引用。

  动态共享库(Shared Library):动态共享库是Library类型的一种,编译后生成动态共享包HSP(Harmony Shared Package),应用内HSP只支持应用内引用,仅集成态HSP支持发布到ohpm私仓和跨应用引用。

  对应软件工程的生产流程,将鸿蒙应用产品状态划分为开发态、编译态和发布态,不同状态拥有不同应用程序结构和特性,DevEco Studio集成开发环境可自行进行处理,研制过程中仅需按照API指南配置即可。

(2)“功能级一多”

  功能级一多在工程级一多的基础上,通过API Capability绑定机制,提升功能模块的灵活性与代码复用率。系统能力(SysCap)指操作系统中相对独立的特性(如蓝牙、WIFI、NFC、摄像头等),每个特性对应多个 API,随目标设备对该能力的支持情况共同存在或消失。

  工程默认要求能力集为各设备支持能力集的交集,联想能力集为并集。仅当应用要求能力集是设备支持能力集的子集时,方可在该设备分发、安装及运行,因此在研制过程中需要借助 SysCap 机制在各环节拦截管控,确保应用正常使用。

  1. “界面级一多”

  建议在产品设计早期阶段依托UI一多能力进行统一的视觉与交互设计,针对用户界面的设计理念、视觉风格、布局方式、动画效果、本地化等方面进行统一的设计,UX设计原则应该考虑多设备的“差异性” 、“一致性”、“灵活性”和“兼容性”。通过典型布局、响应式与自适应布局,实现界面在多设备上的自适应展示与一致体验。

  不同设备适和不同的使用场景,多个设备通过分布式操作系统能够相互感知、进而整合成一个超级终端时,设备与设备之间就可以取长补短、相互帮助,为用户提供更加自然流畅的分布式体验。根据跨多设备分布式流转操作使用场景的不同,可分为跨端迁移和多端协同两种具体场景。

  跨端迁移:跨端迁移支持用户将正在使用的应用从A设备迁移到B设备,跨端迁移操作需要在UIAbility中配置。

  多端协同:多端协同支持将多个设备融为一个整体,提供比单设备更加高效、沉浸的体验。

3. 新型编程理念

  新型编程理念包括编程语言、应用生命周期等方面。编程语言方面ArkTS基于 TypeScript 进行改造,进一步规范强化静态检查和分析,支持与 JS/TS 高效互操作,兼容 JS/TS 生态。 通过华为自研的统一编程平台ArkCompiler的AOT(Ahead-of-Time) 编译模式将字节码编译生成优化机器码,极大地提升了应用启动和运行性能,同时带来了ArkTS对于类型的检查极为严格的特性,任何类型必须在研制阶段定义完整,在运行时不支持更改对象布局;应用生命周期方面推出了Stage模型模型取代前期的FA模型。

  目前鸿蒙的主要编程语言采用ArkTS,可以通过使用Node-API实现ArkTS和C/C++(Native)的跨语言交互,部分兼容JavaScript和TypeScript,在API8版本后移除了对Java的支持且不再推荐使用。ArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,其风格示例如下:

```

Text(`跳过${this.count}s`)

  .fontColor(Color.White)

  .backgroundColor(Color.Black)

  .borderRadius(20)

  .padding(8)

  .margin(10)

  .onClick(() => {

    this.count = 0

  })

```

ArkTS同时支持对TS、JS库的导入,不过使用此种模式将跳过ArkTS的静态类型检查机制。

4.安全等级提升带来的成本增加

  鸿蒙系统非常重视安全性方面的设计,建立了较为全面的应用沙箱、应用权限、安全访问机制,同时提供加解密、DLP(数据防泄漏)、可信应用服务、业务风险检测、安全审计、反诈选择器、数字盾服务、企业数据保护服务、防窥保护、密钥管理、证书管理等安全相关服务。

  应用沙箱:应用沙箱是通过隔离机制实现安全防护,防止数据被恶意路径穿越访问,其保护下的应用可见目录范围为 “应用沙箱目录”。应用沙箱机制下,应用仅可见自身文件目录,无法获取其他应用或用户数据目录信息。所有应用目录通过权限与路径挂载隔离,形成独立路径视图,屏蔽实际物理路径。

  应用权限:系统通过系统授权和用户授权方式允许应用访问系统资源(如通讯录)和系统能力(如摄像头、麦克风),以此保护系统数据(含用户个人数据)及功能,防止不当或恶意使用。system_grant为系统授权类型,获此权限的应用可访问不涉及用户 / 设备敏感信息的数据,且操作对系统及其他应用影响可控。user_grant为用户授权类型,获此权限的应用可访问涉及用户 / 设备敏感信息的数据,且操作可能对系统及其他应用产生严重影响。

  安全访问机制:鸿蒙安全访问使用系统 Picker和安全控件两种机制,提供改变应用获取隐私数据方式,使用户从管理 “权限” 转向管理 “数据”,实现按需访问系统数据。系统Picker由系统独立进程实现,应用拉起 Picker 且用户操作后,可获取 Picker 返回的资源或结果。UI安全控件被应用集成后用户点击可获临时授权执行操作。

  综和来看当前鸿蒙系统基础API已相对稳定,建议刚上手鸿蒙应用开发的伙伴从鸿蒙工程化体系、鸿蒙应用编程、鸿蒙安全机制等方面进行学习。目前官方工具 DevEco Studio已上线 CodeGenie 智能辅助编程工具,支持智能知识问答、代码生成、代码解读、代码续写和页面生成等功能,建议配合AI工具开发鸿蒙原生应用。

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2020-02-25

  • 博文量
    16
  • 访问量
    696