前几日华为鸿蒙生态千帆启动仪式在深圳举行,笔者有幸受邀现场参与。作为开发者,宏观层面的内容暂且不谈,姑且把技术特性层面的收获稍稍整理,分享给大家。
IDE工具层面
DevEco Studio作为专门用于开发鸿蒙操作系统(HarmonyOS)的应用程序的集成开发环境(IDE),提供一个清晰、直观的用户界面,使得开发人员可以更容易地进行编码、调试和测试我们的应用。新的版本里,在调试和测试方面做了很大的提升,尤其对NDK,使用C或者C++语言实现应用的关键功能的开发项目,在跨语言调用上,不管ArkTS调用C和C++,还是反过来在C和C++上调用ArkTS,它能很容易找到内存泄漏的点,在调优方面,将专家级调优经验,开发成工具,以泳道图的方式直观展现,通过组件耗时情况,可以准确定位到卡顿的点,进而优化!
SDK方面
作为支撑鸿蒙原生应用开发的技术源动力,HarmonyOS SDK将系统级能力全面对外开放,覆盖了应用框架、应用服务、系统、媒体、图形、AI六大领域的开发能力。
应用框架(Application Framework):
- 提供基础的应用开发框架,包含了应用生命周期管理、用户界面渲染、事件处理等基本功能。
- 包括Ability Kit、ArkUI、ArkTS等,这些工具和库用于构建应用程序的基本结构。
应用服务(Application Services):
- 为应用程序提供了一系列的服务,以增强其功能和用户体验。
- 包含Account Kit、App Linking Kit、Message Kit等,用于实现账户管理、数据同步、消息推送等服务。
系统(System):
- 涉及操作系统级别的服务和功能,比如网络、安全性、设备硬件控制等。
- 包括Network Kit、Security Kit、System Service Kit等,提供了网络连接、数据加密、系统服务等功能。
媒体(Media):
- 提供音频、视频处理能力,以及图像捕捉和渲染的功能。
- 包含Audio Kit、Camera Kit、Media Kit等,支持应用进行媒体内容的创建、编辑和播放。
图形(Graphics):
- 提供2D/3D图形渲染、动画、和视觉效果的工具。
- 包括Canvas Kit、Graphic Accelerate Kit、Vector Graphic Kit等,帮助开发者创建图形丰富的用户界面和动画效果。
AI(Artificial Intelligence):
- 包含人工智能功能,如机器学习、语音识别、图像识别等。
- 包括AI Engine、Machine Learning Kit、HiAI Foundation等,使应用能够实现智能化的操作和处理。
Next版鸿蒙原生应用新特性
更纯净
更智能
通过Media Library Kit控件,手机可以智能推荐用户要选择的照片,比如需要上传身份证的时候,打开相册上传,可以通过输入“身份证”这样的关键字,鸿蒙系统会自动图片识别,自动筛选出身份证的图片供选择,不用我们自己去找!再比如Push Kit控件,让同一事件推送的多个消息自动聚合在一起,让用户高效获取价值信息,提升用户的体验。
更精致
ArkUI提供的控件,提升了空间层次感,模拟真实世界的空间层次,提供精致细腻的视效动效,使能鸿蒙原生应用高端精致。
更易用
使用 Live View Kit (实况窗),打造鸿蒙原生应用全新体验,这个实况窗,实质就是让展示信息的地方,更加多样化了,比如,实况窗可将打车、外卖配送等进展呈现在熄屏、锁屏、通知中心、状态栏,桌面卡片等多个入口,无论手机处于那个状态,用户只需扫一眼即可了解最新打车、外卖进度,无需反复打开应用查看,减少用户等待过程的焦虑,让手机更加易用。又比如,使用Scan Kit 软硬芯协同,提供鸿蒙原生应用统一的、系统级的扫码能力,可以把扫码图标常驻桌面,打开扫描界面不用去找对应的app,扫描时系统自动识别是什么app的二维码,自动对接到对应app,让手机使用更方便。
在开发层面
应用架构上采用三层模式
因为鸿蒙是针对多设备的操作系统,所以开发工程上,建议把基本不需要修改的代码放到工程的公共能力基础层,然后根据各种设备的不同,拆分出很多特性代码模块,放在特性层,最上面的一层是针对不同设备的皮肤,有可能随时改变的代码,放在产品层。整体上就把项目从下到上工程划分为,公共基础能力层,特性层以及产品层。
一次开发,多端部署
随着终端设备形态日益多样化,分布式技术逐渐打破单一硬件边界,一个应用或服务,可以在不同的硬件设备之间随意调用、互助共享,让用户享受无缝的全场景体验。
而作为应用开发者,广泛的设备类型也能为应用带来广大的潜在用户群体。
但是如果一个应用需要在多个设备上提供同样的内容,则需要适配不同的屏幕尺寸和硬件,开发成本较高。
Harmony 系统面向多终端提供了“一次开发,多端部署”(简称为“一多”)的能力,让开发者可以基于一种设计,高效构建多端可运行的应用。
说的直白一点,就是以前我们可能会针对不同设备,开发不同的app来支持,pc端一套pc代码,移动端对应一套移动端代码,手表又会重新开发手表的对应的程序,再不济,也是一套应用里边含有几套对应不同设备的独立的UI代码,但是现在鸿蒙系统上做应用开发不用这门麻烦了,“一多”就非常完美解决这个问题,它能做到开发阶段应考虑不同类型设备间最大程度的复用代码,整个代码工程最终构建出一个APP包,但这个APP包可以分发适配到各种不同设备中正常运行。
UI框架采用MVVM模式
ArkUI采取MVVM = Model + View + ViewModel模式:
- Model层:存储数据和相关逻辑的模型。它表示组件或其他相关业务逻辑之间传输的数据。Model是对原始数据的进一步处理。
- View层:在ArkUI中通常是@Components修饰组件渲染的UI。
- ViewModel层:在ArkUI中,ViewModel是存储在自定义组件的状态变量、LocalStorage和AppStorage中的数据。
采用MVVM(Model-View-ViewModel)模式进行用户界面(UI)设计和开发,具有以下好处:
- 提高可维护性:MVVM模式通过分离视图(UI)和业务逻辑(Model),使得代码更易于维护和扩展。ViewModel充当视图和模型之间的中介,减少了视图和模型之间的依赖。
- 增强可测试性:由于业务逻辑被从视图中分离出来,因此可以独立于UI对业务逻辑进行测试,提高测试的便利性和覆盖面。
- 提升代码复用率:ViewModel可以在不同的视图中重用,特别是在复杂的用户界面和共享功能中,这样可以减少重复的代码。
- 简化数据绑定:MVVM模式允许自动数据绑定,这意味着视图可以直接从ViewModel获取数据,反之亦然。这简化了UI的动态更新,使得开发者不必手动操作DOM或监听数据变化。
- 更好的分工协作:设计师可以专注于视图设计,而开发者可以专注于业务逻辑,从而使团队协作更加高效。
- 改善性能:MVVM可以通过优化数据绑定和状态管理来提高应用程序的性能,特别是在处理大量动态数据更新的情况下。
- 更好的用户体验:MVVM支持更丰富的交互设计,如实时数据更新,无需刷新页面即可响应用户的操作,从而提升用户体验。
- 减轻UI线程压力:ViewModel可以在后台线程中处理数据逻辑,从而减少UI线程的工作量,使界面响应更加流畅。
后续
林林总总的在上面总结了这次一行的部分收获,当然实际的收获还有很多没写出来,这些后续我都会在我的ArkTS鸿蒙应用开发系列课里,更加仔细地和大家分享,希望大家期待.....嘿嘿!