多层面深度分析【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线程的工作量,使界面响应更加流畅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/367489.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

eduSRC那些事儿-4(未授权漏洞+社会工程学)

点击星标,即时接收最新推文 本文对edusrc挖掘的部分漏洞进行整理,将案例脱敏后输出成文章,不包含0DAY/BYPASS的案例过程,仅对挖掘思路和方法进行相关讲解。 未授权漏洞 一般都出现在内网,也有外网出现的情况&#xff0…

C语言指针的几种用途

先看题目,写一个fun函数,统计一个字符串中某个字符出现的次数,以及这个字符第一次出现的位置。 看起来很简单,似乎几行就可以搞定,但是写出来之后,才发现代码怎么这么长!程序里多处使用了指针&…

问题:在电容耦合的放大电路中,耦合电容对输入交流信号应可视为( )。 #微信#媒体#学习方法

问题:在电容耦合的放大电路中,耦合电容对输入交流信号应可视为( )。 A:电流源; B:断路; C:短路; D:电压源 参考答案如图所示

CSS要点总结

一、CSS 快速入门 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>css 快速入门</title><!-- 解读1. 在 head 标签内&#xff0c;出现了 <style type"text/css"></style…

美国纳斯达克大屏怎么投放:投放完成需要多长时间-大舍传媒Dashe Media

陕西大舍广告传媒有限公司&#xff08;Shaanxi Dashe Advertising Media Co., Ltd&#xff09;&#xff0c;简称大舍传媒&#xff08;Dashe Media&#xff09;&#xff0c;是纳斯达克在中国区的总代理&#xff08;China General Agent&#xff09;。与纳斯达克合作已经有八年的…

大数据平台-可视化面板介绍-Echarts

应对现在数据可视化的趋势&#xff0c;越来越多企业需要在很多场景(营销数据&#xff0c;生产数据&#xff0c;用户数据)下使用&#xff0c;可视化图表来展示体现数据&#xff0c;让数据更加直观&#xff0c;数据特点更加突出。 目录 01-使用技术 02- 案例适配方案 03-基础…

Leetcode206:反转链表

一、题目 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表 示例&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]输入&#xff1a;head [] 输出&#xff1…

拓展欧几里得法求逆元

板子&#xff1a; x即为最终答案&#xff0c;x可能为负数&#xff0c;加模数即可 乘法逆元 - OI Wiki (oi-wiki.org) void exgcd(int a, int b, int& x, int& y) {if (b 0) {x 1, y 0;return;}exgcd(b, a % b, y, x);y - a / b * x; } 使用: exgcd(a, n 1, x,…

nest.js实现登录验证码功能(学习笔记)

安装express-session npm i express-session 引入 注册session import * as session from express-session;import { NestFactory } from nestjs/core; import {DocumentBuilder,SwaggerModule, } from nestjs/swagger;import { AppModule } from ./app.module;async functio…

今天又接到了一个离谱的DEBUG订单

一、BUG程序 #include <iostream> #include <string>class Rectangle { private:int width;int height;public:Rectangle(int w, int h) {width w;height h;}void setWidth(int w) {width w;}void setHeight(int h) {height h;}int getArea() {return width *…

24年2月深度学习

参考&#xff1a; RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL 树结构检索方案。

项目安全-----加密算法实现

目录 对称加密算法 AES &#xff08;ECB模式&#xff09; AES(CBC 模式)。 非对称加密 对称加密算法 对称加密算法&#xff0c;是使用相同的密钥进行加密和解密。使用对称加密算法来加密双方的通信的话&#xff0c;双方需要先约定一个密钥&#xff0c;加密方才能加密&#…

SQL注入:sqli-labs靶场通关(1-37关)

SQL注入系列文章&#xff1a; 初识SQL注入-CSDN博客 SQL注入&#xff1a;联合查询的三个绕过技巧-CSDN博客 SQL注入&#xff1a;报错注入-CSDN博客 SQL注入&#xff1a;盲注-CSDN博客 SQL注入&#xff1a;二次注入-CSDN博客 ​SQL注入&#xff1a;order by注入-CSDN博客 …

uniCloud -- uniIdRouter自动路由

目录 自动路由 云对象响应触发needLogin 获取当前用户信息getCurrentUserInfo 实战应用 个人中心页面 pages.json配置 uni-id自动路由 uni_modules\uni-id-pages/common 登录页面store修改 自动路由 支持的HBuilderX版本 uni-appuni-app x3.5.03.99 uniIdRouter 是一…

RK3568平台 安卓hal3适配usb camera

一.RK安卓hal3 camera框架 Camera hal3 在 android 框架中所处的位置如上图&#xff0c; 对上&#xff0c;主要实现 Framework 一整套 API 接口&#xff0c;响应其 控制命令&#xff0c;返回数据与控制参数结果。 对下&#xff0c; 主要是通 V4l2 框架实现与 kernel 的交互。3a…

c语言---操作符(详解)

目录 一、操作符的分类二、算术操作符三、 移位操作符3.1<<左移操作符3.1.1移位规则3.1.2直接上代码以及解释 3.2>> 右移操作符3.2.1移位规则3.2.2画图解释 3.3注意 四、位操作符&#xff1a;&、|、^、~4.1&按位与4.1.1按位与的计算逻辑4.1.2代码4.1.3运行…

山上有路路难行

原乡情浓 - 邓丽君作词 : Chong Nou作曲 : 汤尼山上有路路难行嘞弯弯曲曲一层又一层嘞小哥要去看小妹嘞不怕山高路不平嘞山上石头大又硬嘞歪歪倒倒一层又一层嘞小哥不怕硬石头嘞只怕小妹心肠硬嘞路边椰树高又高嘞风吹椰树一摇又一授嘞小妹爱哥身体壮嘞可爱小妹身妙条嘞香蕉树上…

机器学习——绪论总结

目录 一、引入 二、基本术语 三、假设空间与归纳偏 四、模型选择 一、引入 机器学习&#xff1a;通过计算手段&#xff0c;得出具有能够自我修改、完善能力的模型&#xff0c;利用经验改善系统自身性能。算法使用数据得到模型的过程即称为学习&#xff0c;或训练 流程&…

前端JavaScript篇之对 rest 参数的理解、ES6中模板语法与字符串处理

目录 对 rest 参数的理解ES6中模板语法与字符串处理 对 rest 参数的理解 rest参数是一种在函数定义中使用的特殊语法&#xff0c;它允许函数接受任意数量的参数&#xff0c;并将它们收集到一个数组中。通俗地说&#xff0c;rest参数就像是一个容器&#xff0c;用来存放函数接收…

cnpm : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\cnpm.ps1

cnpm命令被禁止使用 我已经安装cnpm &#xff0c;但是使用不了&#xff0c;重新安装也没用。 报错如下图&#xff1a; cnpm无法使用报错 解决问题 1、打开系统Windows PowerShell,使用管理员身份运行。 打开Windows PowerShell 2、输入set-ExecutionPolicy RemoteSigned&a…
最新文章