在这里插入图片描述

鸿蒙开发的主要框架是ArkUI,以下是对ArkUI的具体介绍 :

  • 基础概念:ArkUI为HarmonyOS应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能以及实时界面预览工具等,支持开发者进行可视化界面开发。其中,UI即用户界面,开发者可将应用的用户界面设计为多个功能页面,通过页面路由API完成页面间的调度管理,如跳转、回退等操作,以实现应用内的功能解耦。组件是UI构建与显示的最小单位,如列表、网格、按钮、单选框、进度条、文本等,开发者通过多种组件的组合,构建出满足自身应用诉求的完整界面。
  • 开发范式:ArkUI提供了两种开发范式。一是基于ArkTS的声明式开发范式,采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制能力;二是兼容JS的类Web开发范式,采用经典的HML、CSS、JavaScript三段式开发方式,即使用HML标签文件搭建布局、使用CSS文件描述样式、使用JavaScript文件处理逻辑,该范式更符合Web前端开发者的使用习惯,便于快速将已有的Web应用改造成ArkUI框架应用。在开发新应用时,推荐采用声明式开发范式来构建UI,因其开发效率更高,应用性能更佳,且是后续主推的开发范式。
  • 主要特点
    • 开发效率高:通过接近自然语义的方式描述UI,开发者不必关心框架如何实现UI绘制和渲染,代码简洁,数据驱动UI变化,让开发者更专注自身业务逻辑的处理,提升开发体验。
    • 性能优越:声明式UI前端和UI后端分层,UI后端采用C++语言构建,提供对应前端的基础组件、布局、动效、交互事件、组件状态管理和渲染管线。同时,语言编译器和运行时也进行了优化,如统一字节码、高效FFI、AOT、引擎极小化、类型优化等。
    • 生态易推进:能够借力主流语言生态快速推进,语言相对中立友好,有相应的标准组织可以逐步演进。
  • 整体架构
    • 声明式UI前端:提供了UI开发范式的基础语言规范,并提供内置的UI组件、布局和动画,以及多种状态管理机制,为应用开发者提供一系列接口支持。
    • 语言运行时:选用方舟语言运行时,提供了针对UI范式语法的解析能力、跨语言调用支持的能力和TS语言高性能运行环境。
    • 声明式UI后端引擎:提供了兼容不同开发范式的UI渲染管线,多种基础组件、布局计算、动效、交互事件,以及状态管理和绘制能力。渲染引擎则提供了高效的绘制能力,将渲染管线收集的渲染指令,绘制到屏幕上。
    • 平台适配层:提供了对系统平台的抽象接口,具备接入不同系统的能力,如系统渲染管线、生命周期调度等 。

多终端支持

鸿蒙的ArkUI框架是可以支持多个终端的,主要通过以下方式实现:

  • 跨端开发能力:ArkUI-X进一步将ArkUI扩展到了多个OS平台,目前已经支持OpenHarmony、HarmonyOS、Android、iOS,后续还会逐步增加更多平台支持。这意味着开发者基于一套主代码,就能够构建支持多平台的应用,减少了因不同平台适配而带来的重复开发工作.
  • 统一编程框架与抽象UI控件:ArkUI框架为不同终端提供了统一的编程框架和自动适配多终端硬件能力的统一抽象UI控件。开发者在开发过程中,使用一套TS/JS API,无需针对不同设备开发多套代码,只需一套应用工程,就可以在多种终端部署,如手机、平板、大屏、车载、穿戴等设备,提高了开发效率,降低了代码的维护难度.
  • 自适应布局:该框架可以为不同屏幕的终端提供自适应布局。不同终端设备的屏幕尺寸、色彩风格等存在差异,ArkUI框架能够自动适配这些差异,使应用在各种终端上都能呈现出良好的用户界面和交互体验,无需开发者手动调整布局和样式.

学习成本低

学习鸿蒙开发框架ArkUI的成本具有一定的相对性,以下是具体分析:

基础要求方面

  • 如果开发者已经具备JavaScript或TypeScript语言开发能力,那么在学习ArkUI时会相对轻松,因为ArkTS是基于TypeScript扩展而来的,继承了其所有特性.
  • 若有Android或iOS开发经验,过渡到鸿蒙开发也会比较平滑,因为在架构和开发工具上有一定相似性,且鸿蒙提供了对Android应用的兼容性.

语言和框架特性方面

  • ArkUI提供了声明式开发范式和兼容JS的类Web开发范式,声明式UI语法简洁直观,接近自然语义,通过数据驱动UI变化,开发者无需过多关注框架底层的绘制和渲染逻辑,能更专注于业务逻辑处理,从而降低了学习难度.
  • 其样式设置采用链式调用和样式后置的方式,相比传统的结构与样式分离的方式,更加简洁灵活,学习和记忆成本也更低.
  • 从组件来看,ArkUI目前已经支持了26种容器组件,这些组件具有明确的语义化,开发者一看就能知道其用途和布局方式,降低了学习成本.

开发工具和环境方面

  • 鸿蒙的开发工具如DevEco Studio等,界面简洁,操作相对容易上手,官方也提供了详细的文档和教程来指导开发者进行环境配置和项目创建等基础操作.
  • 此外,ArkUI还提供了实时界面预览工具,能够让开发者实时查看UI界面的效果,快速进行调试和修改,这有助于提高学习效率,减少开发过程中的错误和反复调试的时间.

生态和资源方面

  • 华为为ArkUI框架提供了丰富的样例和分析教程,这些资源能够帮助开发者更好地理解和掌握ArkUI的开发技巧和最佳实践.
  • 随着鸿蒙系统的不断发展,其社区也在逐渐壮大,开发者可以在社区中与其他开发者交流经验、分享学习心得、获取技术支持,这对于学习和解决遇到的问题都非常有帮助.

复杂功能和系统深入理解部分

  • 分布式开发:鸿蒙系统的一大特色是分布式能力,这在开发过程中涉及到多设备协同通信、数据共享等复杂概念。对于初学者来说,理解和掌握分布式开发的原理与实践是一个挑战。例如,要实现手机与智能手表之间的无缝数据交互,开发者需要深入了解分布式任务调度、设备发现与连接等机制,这需要花费一定的时间和精力去学习。
  • 系统原生能力调用:充分利用鸿蒙系统的原生能力,如传感器数据获取(例如加速度计、陀螺仪数据用于运动相关应用)、系统安全机制集成(如应用签名验证)等功能,需要开发者对鸿蒙系统的底层架构和API有比较深入的理解。与简单的界面开发相比,这部分内容的学习曲线相对较陡。
  • 性能优化和兼容性:在开发高质量的鸿蒙应用时,性能优化是一个重要的环节。这包括内存管理、渲染性能提升等方面。同时,由于鸿蒙系统需要兼容多种设备类型,从低性能的物联网设备到高性能的智能手机和平板电脑,确保应用在不同设备上的兼容性也是一个难点。例如,在低内存的物联网设备上,如何优化应用的内存占用,避免出现内存泄漏或卡顿现象,需要开发者具备一定的系统级开发知识和经验。

跨平台知识迁移干扰

  • 已有开发习惯冲突:如果开发者有丰富的Android或iOS开发经验,在学习鸿蒙开发时,可能会受到已有开发习惯的干扰。例如,Android开发中习惯使用的某些设计模式或工具在鸿蒙开发中可能有不同的实现方式。在这种情况下,开发者需要打破原有的思维定式,重新学习和适应新的开发模式和流程,这可能会增加学习成本。
  • 知识体系融合困难:学习鸿蒙开发不仅仅是掌握ArkUI框架本身,还需要将其与其他相关知识体系进行融合。例如,在跨平台开发场景中,需要将鸿蒙开发知识与已有的Android或iOS跨平台策略相结合。对于开发者来说,要将不同的知识体系融会贯通,构建一个完整的跨平台开发思路并非易事,需要在实践中不断积累经验,从而增加了整体的学习成本。

ArkTS的学习

  1. 定义与背景
    • ArkTS是鸿蒙开发中用于构建用户界面(UI)的一种编程语言。它是基于TypeScript语言进行扩展而来的,是ArkUI框架所采用的主要开发语言之一。在鸿蒙系统的应用开发场景中,ArkTS发挥着关键作用,主要用于编写具有高效性能和良好用户体验的应用界面代码。
  2. 语法特点
    • 声明式语法:ArkTS采用声明式的语法来构建UI。这意味着开发者可以用一种简洁的方式描述UI应该呈现的样子,而不是通过命令式的方式一步步地告诉系统如何去绘制UI。例如,通过简单地声明组件的属性和状态,系统就能自动渲染出相应的界面。这种语法风格类似于HTML,它让开发者能够更专注于UI的逻辑和外观设计,而不是底层的绘制细节。
    • 数据驱动UI更新:它具有强大的数据驱动能力。在ArkTS中,UI的状态是由数据决定的。当数据发生变化时,UI会自动更新以反映这种变化。例如,一个显示用户列表的组件,当用户数据(如新增用户、删除用户或修改用户信息)发生改变时,组件会自动重新渲染,而不需要开发者手动去更新每个受影响的UI元素。这大大简化了UI的开发和维护过程。
    • 组件化开发:支持组件化开发是ArkTS的一个重要特点。开发者可以将UI分解为多个独立的组件,每个组件都有自己的逻辑、属性和状态。这些组件可以像积木一样进行组合和复用,构建出复杂的应用界面。例如,一个按钮组件可以在多个不同的页面中使用,并且每个按钮的行为和外观可以根据具体的页面需求进行定制。
  3. 与其他语言的关系
    • 与TypeScript的关系:ArkTS继承了TypeScript的所有特性。TypeScript是一种强类型的JavaScript超集,它在JavaScript的基础上添加了静态类型检查等功能,提高了代码的可读性和可维护性。ArkTS基于TypeScript扩展,意味着开发者可以利用TypeScript的类型系统来编写更健壮的代码。例如,在定义变量和函数参数时,可以明确指定类型,减少类型错误的发生。
    • 与JavaScript的关系:由于TypeScript与JavaScript高度兼容,ArkTS也可以与JavaScript很好地协同工作。对于熟悉JavaScript的开发者来说,他们可以很容易地过渡到ArkTS的开发。同时,在一些场景下,也可以在ArkTS代码中嵌入JavaScript代码,实现特定的功能。
  4. 应用场景与优势
    • 高效的UI开发:在开发鸿蒙应用的UI时,ArkTS能够提高开发效率。通过其简洁的声明式语法和组件化的开发方式,开发者可以快速构建出复杂的UI界面。例如,在开发一个电商应用的商品展示页面时,开发者可以使用ArkTS快速定义商品列表组件、图片展示组件、价格标签组件等,然后将它们组合在一起,形成完整的页面。
    • 性能优化:ArkTS语言编译器和运行时进行了优化,这有助于提高应用的性能。例如,通过统一字节码、高效的外部函数接口(FFI)、提前编译(AOT)等技术,减少了应用的启动时间和运行时的资源消耗。在移动设备这种资源有限的环境下,这些优化措施能够让应用运行得更加流畅。
    • 跨平台开发支持:在鸿蒙的跨平台开发策略中,ArkTS也发挥了重要作用。它可以帮助开发者编写一套代码,通过ArkUI - X等技术,适配多种不同的操作系统平台,如OpenHarmony、HarmonyOS、Android、iOS等,扩大了应用的适用范围。
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐