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