关于harmonyos:HarmonyOSHAP唯一性校验逻辑

HAP是利用装置的根本单位,在DevEco Studio工程目录中,一个HAP对应一个Module。利用打包时,每个Module生成一个.hap文件。 利用如果蕴含多个Module,在利用市场上架时,会将多个.hap文件打包成一个.app文件(称为Bundle),但在云端散发和端侧装置时,依然是以HAP为根本单位。 为了可能失常散发和装置利用,须要保障一个利用装置到设施时,Module的名称、Ability的名称不反复,并且只有一个Entry类型的Module与指标设施绝对应。 DevEco Studio会在编译构建时,对HAP进行上述唯一性校验,如果校验不通过,将会编译失败或给出告警。 阐明以后仅在API 8的工程中,针对distrofilter进行打包校验。Module校验逻辑校验目标:同一指标设施上Module惟一。 1.校验Module的Name。如果多个Module的Name不同,则校验通过。如果Name雷同,持续校验deviceType。 2.校验设施类型deviceType。如果deviceType不相交,则校验通过。如果deviceType相交,持续校验distroFilter。 deviceType不相交是指两个Module的deviceType中配置了齐全不同的设施,例如: //Module1和Module2配置了齐全不同的设施,deviceType不相交。//Module1{ "deviceType": ["TV", "tablet"]}//Module2{ "deviceType": ["car", "router"]}deviceType相交是指两个Module的deviceType中蕴含了雷同的设施,例如: //Module1和Module2因为都蕴含“tablet”设施,导致deviceType相交。//Module1{ "deviceType": ["TV", "tablet"]}//Module2{ "deviceType": ["car", "tablet"]}3.校验散发规定distroFilter。如果distroFilter不相交,则校验通过。如果distroFilter相交,则无奈保障Module唯一性,校验失败,打包失败。 distroFilter中蕴含属性apiVersion、screenShape、screenWindow、screenDensity和countryCode。相交的相干含意如下: distroFilter不相交:如果两个distroFilter中任意一个属性不相交,则两个distroFilter不相交。distroFilter相交:如果两个distroFilter中所有属性都相交,则两个distroFilter相交。例如,两个Module中的apiVersion、screenShape、screenWindow、screenDensity都相交,但countryCode不相交,则能够辨别两个Module,校验通过。 //Module1和Module2的两个distroFilter中,countryCode不相交,则两个distroFilter不相交。//Module1{ "distroFilter": { "apiVersion" : { "policy": "include", "value": [8,9] }, "screenShape": { "policy": "include", "value": ["rect"] }, "screenWindow": { "policy": "include", "value": ["454*454", "466*466"] }, "screenDensity": { "policy": "include", "value": ["ldpi", "xldpi"] }, "countryCode": { "policy": "include", "value": ["CN", "HK"] } }}//Module2{ "distroFilter": { "apiVersion" : { "policy": "include", "value": [8,9] }, "screenShape": { "policy": "include", "value": ["rect"] }, "screenWindow": { "policy": "include", "value": ["454*454", "466*466"] }, "screenDensity": { "policy": "include", "value": ["ldpi", "xldpi"] }, "countryCode": { "policy": "include", "value": ["USA", "UK"] } }}Ability校验逻辑校验目标:同一指标设施上Ability惟一。 ...

March 4, 2024 · 2 min · jiezi

关于harmonyos:还在犹豫学不学鸿蒙技术是否有前途的最强信号来了

2024年3月3日 上午10 点,深圳官网账号公布了一篇对于鸿蒙技术倒退的重要文章,看到这篇文章后我十分冲动,忍不住和大家分享一下! 华为鸿蒙零碎自提出以来,网友们的态度各不相同,有讥笑“安卓套壳”的,也有认可自主操作系统价值的,更有很多“尝螃蟹”的人开始学习并分享。 之所以态度不同,基本上是因为屁股坐的地位不同。 那些开始学习并分享的,除去局部有远见者,大多数是因为公司处于行业头部,华为有被动沟通对接,须要在正式上线前做好鸿蒙版 APP。工作上须要应用,那学习也就自然而然了。 而那些持张望态度、犹豫要不要学的,次要是因为工作上用不到,不确定学习鸿蒙技术有没有前景,值不值得投入工夫。 重要方向曾经明确在明天以前,“鸿蒙技术是否有前景”还没有明确的信号,网络上看到的都是网友的主观判断。 但在(2024.03.03)开始,这个问题曾经没有探讨的必要了! 就在昨天上午十点,深圳公布公众号公布了一篇文章:《深圳市反对开源鸿蒙原生利用倒退2024年行动计划》印发。 这篇文章很长,次要讲了这么几点: 1.文章是深圳工信局公布,通过深圳市政府批准(政府官网意见,重要性可见一斑) 2.深圳要成为鸿蒙应用软件的重点倒退城市,从需要、供应、生态多方面发力 3.2024 年建立了多个具体指标 深圳开发的鸿蒙利用数量要占全国 10% 以上(往年会有很多鸿蒙招聘需要,找工作的能够先学起来了)深圳市高校和培训机构会开设鸿蒙开发课程,获得资质的鸿蒙开发者占全国 15% 以上(几年后鸿蒙开发者会如雨后春笋冒出来)建成 2 家以上鸿蒙软件开发产业园(企业老板能够关注一下,做鸿蒙利用会有政策反对和处分)一句话总结:深圳 2024 年会反对和推动政务和公共服务零碎推出鸿蒙版利用,并且推动其余行业企业开发鸿蒙利用,分级分类给予处分。 鸿蒙自主操作系统,将来会作为深圳乃至全国政务、公共服务乃至其余行业的重要软件平台,当初学习,大有可为! 那么,2024年了,你如何抉择呢?随着更多企业退出鸿蒙生态,以及鸿蒙技术在各行业的广泛应用,鸿蒙人才的需要预计将持续放弃增长态势。 鸿蒙浪潮已势不可挡,不少互联网人看到先机,想要抢占风口,换道领跑,实现遥遥领先! 但学习考究章法,目前市面上还缺一份实用且全面的鸿蒙学习路线图以及配套的我的项目课程,导致万千学子在学习鸿蒙的路上没有方向,不是困难重重,就是走了很多弯路!还有局部学生因为走错方向,节约了大量的工夫和金钱! 为了节俭大家一些查找的工夫,这边联结几位行业大佬,为大家筹备了一份《鸿蒙全栈技术 实战我的项目驱动式教学》的学习导图,从入门到进阶再到南北向开发实战的一整套残缺体系,想要学习理解更多鸿蒙开发的相干常识能够借鉴:《鸿蒙根底入门学习指南》支付以上残缺高清学习路线图,请点击→《鸿蒙 (Harmony OS)开发学习手册》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙全套学习指南》

March 4, 2024 · 1 min · jiezi

关于harmonyos:FAQHarmonyOS-SDK-闭源开放能力-Account-Kit

1.问题形容 实时验证和非实时验证的区别是什么? 解决方案 相同点: “手机号疾速验证”和“实时验证”都是为了向用户发动获取手机号信息的申请。最终目标都是为了获取到手机号。这两种获取形式都须要实现“获取您的手机号”的Scope权限申请。 区别: 实时验证手机号:每次调用都会拉起受权页并对手机号进行验证,无论原先是否已获取到用户受权,在用户受权并验证手机号后,返回长期登录凭证Authorization Code。 疾速验证手机号:通过传对应scope和permission调用受权API,如果已受权则间接返回长期登录凭证Authorization Code,如果没有受权则拉起受权页,在用户受权后,返回Authorization Code。 2.问题形容 clientid不上架是否能够获取,如何获取?clientid、UnionID、OpenID对于利用和元服务是否是同一个? 解决方案 问题一: clientid不须要上架,在AGC网站上就能够获取,请参见:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...。 问题二: 1.clienid是利用维度调配的,利用和元服务属于两个利用,因而不是同一个。 2.UnionID是华为帐号用户在同一个开发者帐号下产品的身份ID,同一个用户,同一个开发者帐号下治理的不同利用,UnionID值雷同。 3.OpenID是华为帐号用户在不同类型的产品的身份ID,同一个用户,不同利用,OpenID值不同。具体可参见接口阐明:https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...。 3.问题形容 Account Kit拉起的登录框弹框是如何实现的? 解决方案 应用半模态,文档参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...

March 4, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS配置编译构建信息

在进行利用/服务的编译构建前,须要对工程和编译构建的Module进行设置。API Version 9、API Version 8与API Version 4~7的构建体系不同,因而在设置编译构建信息时也存在差别: API Version 9:须要对构建配置文件、构建脚本、利用依赖的共享包等信息进行设置。build-profile.json5:利用/服务构建配置文件。hvigorfile.ts:自定义编译构建脚本。oh-package.json5:利用的三方包依赖,反对共享包的依赖。API Version 8:须要对构建配置文件、构建脚本、利用依赖的npm包等信息进行设置。build-profile.json5:HarmonyOS利用/服务构建配置文件。hvigorfile.ts:自定义编译构建脚本。package.json:利用的三方包依赖,反对HAR(遵循npm标准规范)和npm包的依赖。API Version 4~7:须要通过build.gradle来对工程编译构建参数进行设置。build-profile.json5(API Version 8~9)工程级build-profile.json5工程级build-profile.json5的示例如下所示: { "app": { //工程的签名信息,可蕴含多个签名信息 "signingConfigs": [ { "name": "default", //标识签名计划的名称 "type": "HarmonyOS", //标识HarmonyOS利用 //该计划的签名资料 "material": { "certpath": "D:\\SigningConfig\\debug_hos.cer", //调试或公布证书文件,格局为.cer "storePassword": "******", //密钥库明码,以密文模式出现 "keyAlias": "debugKey", //密钥别名信息 "keyPassword": "******", //密钥明码,以密文模式出现 "profile": "D:\\SigningConfig\\debug_hos.p7b", //调试或公布证书Profile文件,格局为.p7b "signAlg": "SHA256withECDSA", //密钥库signAlg参数 "storeFile": "D:\\SigningConfig\\debug_hos.p12" //密钥库文件,格局为.p12 } } ], "compileSdkVersion": 9, //指定HarmonyOS利用/服务编译时的SDK版本 "compatibleSdkVersion": 9, //指定HarmonyOS利用/服务兼容的最低SDK版本 //定义构建的产品品类,如通用默认版、付费版、免费版等 "products": [ { "name": "default", //定义产品的名称,反对定制多product指标产物,具体请参考定制多指标构建产物 "signingConfig": "default", //指定以后产品品类对应的签名信息,签名信息须要在signingConfigs中进行定义 } ] }, "modules": [ { "name": "entry", //模块名称 "srcPath": "./entry", //表明模块根目录绝对工程根目录的相对路径 "targets": [ //定义构建的APP产物,由product和各模块定义的targets独特定义 { "name": "default", //target名称,由各个模块的build-profile.json5中的targets字段定义 "applyToProducts": [ "default" //示意将该模块下的“default” Target打包到“default” Product中 ] } ] } ]}模块级build-profile.json5模块级build-profile.json5的示例如下所示: ...

March 3, 2024 · 3 min · jiezi

关于harmonyos:HarmonyOS编译构建概述

编译构建是将利用/服务的源代码、资源、第三方库等,通过编译工具转换为可间接在硬件设施上运行的二进制机器码,而后再将二进制机器码封装为HAP/APP软件包,并为HAP/APP包进行签名的过程。其中,HAP是能够间接运行在模拟器或真机设备中的软件包;APP则是用于利用/服务上架到华为利用市场。HAP和APP的关系阐明请参考工程介绍。 HarmonyOS利用/服务反对API Version 4~9,但API Version 4~7与API Version 8~9在编译构建体系、工程目录及配置文件等存在差别,接下来将具体介绍两者之间的差别。 构建体系HarmonyOS利用/服务API Version 4~7和API Version 8~9的构建工具和构建插件不同。 API Version 4~7构建体系是由Gradle构建工具和构建插件组成;API Version 8~9构建体系是由Hvigor构建工具和构建插件组成。Gradle构建工具作为业界风行的自动化构建开源工具,本章节不再赘述,接下来为大家介绍Hvigor构建体系。 Hvigor构建工具:一款全新基于TS实现的前端构建工作编排工具,联合npm包管理机制,次要提供工作管理机制,工作注册编排、工程模型治理、配置管理等要害能力,更合乎ArkTS/JS开发者的开发习惯。 构建插件hvigor-ohos-plugin:是基于Hvigor构建工具开发的一个插件,利用Hvigor的工作编排机制实现利用/服务构建工作流的执行,实现HAP/APP的构建打包,利用于利用/服务的构建。 DevEco Studio会主动配置配套版本的编译工具和构建插件依赖,对于构建工具和构建插件的版本配套关系可参考DevEco Studio版本阐明。如需批改构建工具和构建插件版本,API 9及以上版本和API 8版本工程的批改地位不同: API 9及以上版本需批改hvigor目录下的hvigor-config.json5文件,示例如下。{ “hvigorVersion”: "2.2.1", "dependencies": { "@ohos/hvigor-ohos-plugin": "2.2.1" }}API 8版本须要在工程级的package.json文件中配置相应的版本依赖,示例如下。{ ... "dependencies": { "@ohos/hvigor": "1.4.0", "@ohos/hvigor-ohos-plugin": "1.4.0" }}工程目录及配置文件阐明工程目录及配置文件(API Version 9) HarmonyOS API Version 9基于Hvigor构建体系,DevEco Studio定义了其工程范式,上面是Hvigor构建体系的工程目录构造示意图:对于Hvigor构建体系中的构建配置文件(build-profile.json5)、构建脚本(hvigorfile.ts)、依赖配置(oh-package.json5)的具体阐明请参考配置编译构建信息章节。 工程目录及配置文件(API Version 8)HarmonyOS API Version 8基于Hvigor构建体系,DevEco Studio定义了其工程范式,上面是Hvigor构建体系的工程目录构造示意图: 对于Hvigor构建体系中的构建配置文件(build-profile.json5)、构建脚本(hvigorfile.ts)、依赖配置(package.json)的具体阐明请参考配置编译构建信息章节。 工程目录及配置文件(API Version 4~7)HarmonyOS API Version 4~7基于Gradle构建体系,DevEco Studio定义了其工程范式,上面是Gradle构建体系的工程目录构造示意图: 对于build.gradle具体阐明请参考配置编译构建信息章节。 如何构建利用/服务启动利用/服务构建阐明在实现利用/服务开发后,如果开发者须要将利用包上传到AGC平台的软件包治理或第三方治理平台草稿箱中,可抉择通过Upload Project实现编译并上传,具体请参见通过DevEco Studio编译和上传软件包。通过DevEco Studio构建利用/服务的形式有以下两种: ...

March 1, 2024 · 1 min · jiezi

关于harmonyos:自然语言处理NLP技术使用

@TOC 以下是一些自然语言解决(NLP)技术的例子:词性标注:这个技术能够自动识别文本中的每个单词的词性,例如名词、动词、形容词等。词性标注在主动翻译、文本摘要等利用中十分有用。分词:分词是将一段文字拆分成单个的词语或单词的过程。这个技术在中文文本处理中尤其重要,因为中文没有明确的词与词之间的边界。命名实体辨认:命名实体辨认是辨认文本中的具体实体,如人名、地名、组织机构等。这个技术在信息提取和问答零碎中十分有用。语义角色标注:语义角色标注是将句子中的词语标注为相应的语义角色,如“施事者”、“受事者”、“工夫”等。这个技术在主动问答和信息提取中有重要利用。机器翻译:机器翻译是利用计算机技术主动将一种语言的文本翻译成另一种语言。NLP技术在机器翻译中起着关键作用,例如分词、词性标注、语法分析等。情感剖析:情感剖析是辨认文本中的情感偏向,如侧面、负面或中性。这个技术在社交媒体剖析和舆情监测中有广泛应用。以上只是一些NLP技术的例子,还有许多其余的技术和利用,如文本分类、文本生成、问答零碎等。NLP技术的倒退正逐步扭转人们与计算机之间的交互方式,并提供了许多新的商业和钻研机会。

March 1, 2024 · 1 min · jiezi

关于harmonyos:2024-最火的技术话题

@TOC 在2024年,许多技术话题都备受关注,其中一些最火的话题包含: 1.生成式人工智能:生成式人工智能是以后最热门的技术话题之一。它使机器可能发明相似于人类创作的内容,从而给各个行业带来了革命性的变动。生成式人工智能的利用宽泛,包含文本生成、图像合成、音乐作曲等。把握生成式人工智能技术的人能够在人工智能钻研、数据迷信和创意产业等畛域从事令人兴奋的工作。 生成式人工智能(generative artificial intelligence,GAN)是一种可能通过学习数据的散布来生成新数据的机器学习模型。与传统的监督式学习模型不同,生成式人工智能无需标记化数据,而是通过预计实在数据分布的形式进行学习。 生成式人工智能的核心思想是通过反抗训练的形式来学习生成模型和判断模型。生成模型尝试生成与实在数据类似的样本,而判断模型则负责判断样本是实在数据还是由生成模型生成的。通过两个模型的反抗训练,生成模型逐步进步生成数据的品质,同时判断模型也逐步进步判断实在数据的能力。 生成式人工智能在多个畛域有着宽泛的利用。在文本生成方面,生成模型能够学习并生成与给定文本类似的文章、对话等。在图像合成畛域,生成模型能够生成真切的图像,甚至能够通过给定一些特定的条件来管制生成的图像内容。在音乐作曲方面,生成模型能够学习并生成合乎特定格调的音乐。 生成式人工智能的利用不仅仅局限于娱乐畛域,它还能够在医疗诊断、主动驾驶、金融预测等畛域施展重要作用。例如,在医疗诊断中,生成模型能够学习并生成合成的医学影像,以帮忙医生进行病情剖析和诊断。在金融预测中,生成模型能够生成合成的金融数据,以辅助投资决策。 然而,生成式人工智能也面临着一些挑战。生成模型在学习数据分布时可能会受到数据不均衡、数据噪声等问题的影响,导致生成的样本存在肯定水平的偏差。此外,生成模型的训练过程通常须要大量的计算资源和工夫,限度了其在理论利用中的可行性。 生成式人工智能是一项具备微小后劲和挑战的技术。随着技术的一直倒退和改良,生成式人工智能无望在各个行业带来革命性的变动。对于那些把握生成式人工智能技术的人来说,他们将有机会参加到人工智能钻研、数据迷信和创意产业等畛域的令人兴奋的工作中。 2.网络安全技术:随着网络安全威逼的一直演变,网络安全技术也在一直倒退。在2024年,新型内生平安技术将逐渐迈入成熟落地阶段,例如拟态进攻、可信计算等。此外,随着5G、物联网、云等新兴技术的遍及,网络安全挑战也一直减少,须要不断加强平安进攻措施。 3.大模型技术:大模型原生利用也是以后备受关注的技术话题。随着大模型技术的飞速发展,AIGC、AI Agent和具象智能等畛域正在迅速扩张。这些畛域的倒退也面临着诸多挑战,例如AIGC须要解决内容的原创性、准确性和版权问题,AI Agent须要晋升交互的自然性和人性化,具象智能须要更高效地将AI技术与物理世界联合。大模型技术是指在人工智能畛域中,应用微小规模的数据和参数进行训练的模型。这些大模型能够解决更简单、更粗疏的工作,并在很多畛域获得突破性的停顿。例如,GPT-3是一款具备1750亿个参数的大模型,能够实现自然语言了解和生成,甚至能够进行开放性对话。大模型的倒退为人工智能的利用开拓了新的可能性。 AIGC(Artificial Intelligence Generated Content)是指由人工智能生成的内容。随着大模型技术的倒退,AIGC利用正在逐步增多,包含主动生成文章、音乐、绘画等。然而,AIGC面临着内容的原创性、准确性和版权等问题。如何保障AIGC生成的内容符合要求,并且不进犯别人的版权,是目前须要解决的难题。 AI Agent是指具备自主决策和交互能力的人工智能代理。大模型技术的倒退为AI Agent的交互提供了更多可能性。然而,目前的AI Agent还存在着交互的自然性和人性化的问题。如何使AI Agent的交互更加天然、更加合乎人类的冀望,是AI Agent畛域须要攻克的难题。 具象智能是指将人工智能技术与物理世界联合,使机器可能感知、了解和操作事实环境。大模型技术的倒退为具象智能的实现提供了更多的解决方案。然而,具象智能面临着如何更高效地将AI技术与物理世界联合的问题。如何让机器可能更好地了解和操作物理环境,是具象智能畛域须要解决的挑战。 大模型技术的疾速倒退为AIGC、AI Agent和具象智能等畛域提供了新的时机和挑战。在解决相干问题的同时,大模型技术也将带来更多新的利用和冲破。 4.工业物联网:工业物联网是推动数字化转型的关键技术之一。在2024年,工业物联网市场的增长趋势仍然显著。据预测,到2026年,寰球5G工业物联网市场规模预计将达到157亿美元,复合年增长率高达79.1%。此外,工业物联网还为工厂的智能化降级提供了海量数据,推动了5G行业利用的疾速倒退。工业物联网(Industrial Internet of Things,IIoT)是指将传感器、设施、机器和其余物体连贯到互联网,并通过数据交换和剖析来进步工业生产和经营效率的技术体系。 工业物联网的外围原理是通过传感器和设施将实时数据收集到云平台中,并应用大数据分析和人工智能技术对这些数据进行解决和剖析。这样,企业能够实时监测和管制工厂设施和生产过程,更好地预测和解决故障,并优化生产效率和资源利用率。 工业物联网次要利用于制造业、能源、交通运输和物流等畛域。在制造业中,工业物联网能够实现设施联网监测、自动化生产、智能化仓储物流等性能,晋升生产线的效率和灵活性。在能源畛域,工业物联网能够实现能源消耗的实时监测和优化,帮忙企业升高能源老本和缩小环境污染。在交通运输和物流畛域,工业物联网能够实现车辆和货物的实时追踪和治理,进步物流运输的效率和安全性。 工业物联网的倒退面临一些挑战,包含数据隐衷和平安危险、技术标准和互操作性等问题。为了解决这些问题,各国政府和企业踊跃推动相干技术和政策的研发和制订,并增强单干和共享教训。 工业物联网的倒退能够帮忙企业实现数字化转型,进步生产效率和资源利用率,为工业畛域带来更多的机会和挑战。 这些技术话题在2024年备受关注,它们的倒退和利用对数字化转型和将来倒退具备重要意义。一直学习和把握这些新技术,将为集体和企业在将来的竞争中提供劣势。

March 1, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS云端一体化组件之AGC应用管理

(可选)在AGC控制台创立同包名利用如创立工程时,发现尚未在AGC控制台创立与工程包名雷同的利用,可进行补充创立。 1.点击界面提醒内的“AppGallery Connect”,浏览器关上AGC控制台“我的我的项目”页面。2.点击抉择您心愿创立利用的我的项目,或者点击“增加我的项目”新建一个我的项目。3.如抉择了新建一个我的项目,设置项目名称,点击“确认”。 如抉择了已有我的项目,则疏忽此步骤。 4.设置或治理我的项目数据处理地位,实现后点击“下一步”。 留神启用的数据处理地位必须蕴含中国站点。如我的项目尚未设置数据处理地位,点击“启用”进行设置,具体设置规定与办法可参考设置数据处理地位。 如我的项目已设置过数据处理地位,可点击“治理”进行批改,具体规定与办法可参考治理数据处理地位。5.进入创立利用页面,填写利用信息。6.点击“确认”,利用创立实现。 点击“敞开窗口”,可在“我的我的项目”页面查看刚刚新建的利用,之后您即可回到HUAWEI DevEco Studio持续配置和开发您的工程。点击“返回控制台”,可进入以后利用的“我的项目设置”菜单治理和配置您的我的项目和利用。(可选)将游离利用增加到AGC我的项目下游离利用指未关联任何AGC我的项目的利用。创立工程时,如须要关联的AGC利用为游离利用,则您须要将该利用增加到您的AGC我的项目下。 留神利用与我的项目的关联关系一旦创立则无奈再批改,请审慎操作。1.点击“Not associated yet”,或将鼠标悬停在利用名称前的抉择按钮上、点击弹出的气泡提醒内的“AppGallery Connect”,可关上AGC控制台“我的我的项目”页面。2.点击抉择心愿为利用关联的我的项目,或者点击“增加我的项目”新建一个我的项目。3.如抉择了新建一个我的项目,设置项目名称,点击“确认”。 如抉择了已有我的项目,则疏忽此步骤。4.设置或治理我的项目数据处理地位。 留神启用的数据处理地位必须蕴含中国站点。如我的项目尚未设置数据处理地位,点击“启用”进行设置,具体设置规定与办法可参考设置数据处理地位。 如我的项目已设置过数据处理地位,可点击“治理”进行批改,具体规定与办法可参考治理数据处理地位。5.点击“确认”,利用胜利关联我的项目。 点击“敞开窗口”,可在“我的我的项目”页面查看刚刚关联的利用,之后您即可回到HUAWEI DevEco Studio持续配置和开发您的工程。点击“返回控制台”,可进入以后利用的“我的项目设置”菜单治理和配置您的我的项目和利用。优良案例为帮忙开发者更好地了解与应用端云一体化开发性能,本页面汇总了开发者的优良开发案例。那么要想成为一名鸿蒙高级开发,以上知识点是必须要把握的,除此之外,还须要把握一些鸿蒙利用开发相干的一些技术,须要咱们独特去摸索。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙根底入门学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

March 1, 2024 · 1 min · jiezi

关于harmonyos:FAQHarmonyOS-SDK-闭源开放能力-Push-Kit

1.问题形容 降级到4.0.0.59版本后,通过pushService.getToken获取华为的token时报如下谬误:Illegal application identity. 解决方案 Mate 40 Pro (NOH) 从 4.0降级到4.1版本后,会呈现UDID变动,影响历史的调试签名应用,利用从新签名后即可失常运行。 2.问题形容 依照https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...的操作步骤,获取到了服务token,以及Authorization对应的JWT字符串。依照demo给的request body,将projectId和token替换为实在的数据,用postman post申请 https://push-api.cloud.huawei.com/v3/[projectId]/messages:sendresponse显示胜利,然而获取服务token的设施并未接管到告诉或显示推送。 解决方案 请先确认利用是否申请告诉受权,或者在设置中关上了告诉开关,相干领导请参见:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...。 3.问题形容 如何获取设施永恒惟一标识符? 解决方案 应用AAID作为利用惟一标识符,具体请参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...。请留神:AAID可被一系列操作批改。实现利用AAID不革除能够联合Asset能力实现,具体请参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...

March 1, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS端云一体化组件

概述DevEco Studio还为您提供多种端云一体化组件。集成端云一体化组件后,您只需进行简略配置即可向利用用户提供登录、领取等泛滥性能。 登录组件您可应用端云一体化登录组件向利用用户提供登录和登出性能,目前反对帐号密码登录、手机验证码登录、以及邮箱验证码登录。 组件基于ArkUI开发,提供登录对话框页面。以后仅反对基于ArkUI开发,您可在我的项目中通过ohpm包依赖形式引入。 前提条件您的我的项目应用ArkTS开发。您已在AGC控制台创立我的项目。您已为我的项目开明认证服务并启用相应的认证形式。手机验证码登录需启用“手机号码”认证形式,邮箱验证码登录或帐号密码登录需启用“邮箱地址”认证形式。集成登录组件1.通过ohpm包依赖形式引入组件,在“entry/oh-package.json5”文件中新增依赖: "@ohos/agconnect-auth-component": "^1.0.5"2.引入组件所需的办法。 import {Login, AuthMode} from "@ohos/agconnect-auth-component";3.在代码中集成组件。 Column() { Login({ modes: [AuthMode.PASSWORD, AuthMode.PHONE_VERIFY_CODE, AuthMode.MAIL_VERIFY_CODE], onSuccess: (user) => { AlertDialog.show({ title: 'authInfo', message: JSON.stringify(user) }) } }){ Text('Login').decoration({ type: TextDecorationType.Underline }); }}需传入须要开启的认证形式。 可自定义组件款式为文字、按钮或图标等,点击后弹出登录弹框。例如:文字款式:Text('Login').decoration({ type: TextDecorationType.Underline });按钮款式:Button('Login').fontColor(Color.White);(可选)自定义登录组件的布局如您心愿自定义登录组件的外部布局,可按如下步骤集成登录组件: 1.将引入的登录组件ets目录(“entry/oh_modules/@ohos/agconnect-auth-component/src/main/ets”)拖动到主工程的ets目录(“entry/src/main/ets”)下。2.在弹出的确认框中,确认挪动的目标目录无误后,点击“Refactor”。目录挪动胜利,如下图所示。3.将登录组件的字符串资源代码拷贝至主工程的字符串资源目录文件下。 将“entry/oh_modules/@ohos/agconnect-auth-component/src/main/resources/en/element/string.json”文件内容拷贝至“entry/src/main/resources/en_US/element/string.json”文件内。将“entry/oh_modules/@ohos/agconnect-auth-component/src/main/resources/zh/element/string.json”文件内容拷贝至“entry/src/main/resources/zh_CN/element/string.json”文件内。4.进入“entry/src/main/ets/ets/components/Login”目录,别离在登录组件各个页面的build()办法中批改页面布局。 EmailDialog.ets:邮箱验证码登录页面 LoginDialog.ets:登录对话框页面,提供多种登录形式 PasswordDialog.ets:帐号密码登录页面 PhoneDialog.ets:手机验证码登录页面 RegisterDialog.ets:注册页面5.引入您刚刚自定义的登录组件。 import {Login} from <Login.ets相对路径>import {AuthMode} from <AuthModeEnum.ts相对路径>例如,若在“Auth.ets”中引入,代码如下图所示。那么要想成为一名鸿蒙高级开发,以上知识点是必须要把握的,除此之外,还须要把握一些鸿蒙利用开发相干的一些技术,须要咱们独特去摸索。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙根底入门学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙全套学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

February 29, 2024 · 1 min · jiezi

关于harmonyos:春招市场热辣滚烫鸿蒙岗位成2024春招新宠

2024年春招季已拉开帷幕,在经济与生产回暖复苏的同时,新动能继续倒退,节后企业陆续停工复产,春招市场供需两旺,出现一副欣欣向荣的场面。其中,高端制造业招聘增速亮眼,文旅相干行业、服务类岗位招聘需要也疾速减少。 随着春招的脚步逐步邻近,我关注到一个大热的行业景象——鸿蒙生态的蓬勃发展。 高校毕业生们开始为将来的职业路线进行筹划了。依据智联招聘公布的《2024年春招市场行情周报(第一期)》显示,鸿蒙相干岗位成为了2024春招新宠。 随着各行各业鸿蒙原生利用开发全面启动,春节后动工第一周鸿蒙相干职位数同比增长163%,投递人数同比增长349%,别离增至去年同期的2.6倍、4.5倍,这不仅意味着待业市场上涌入了大量的机会,也意味着毕业生和其余求职者们的职业路线上有了更广大的天空。 周报显示,大型企业(1000人以上)成为鸿蒙人才招聘的主体,占比超过七成,这反映了鸿蒙的减速扩圈失去了许许多多大型企业的响应,加大了企业对于鸿蒙人才的需要。体现在薪资待遇上,鸿蒙开发岗的均匀月薪超过1.8万,比总体开发岗均匀薪资高出9%。教训越高的鸿蒙开发岗,招聘薪资也相应减少,5年以上教训的资深鸿蒙开发岗均匀薪资为25241元/月。“抢滩鸿蒙,人才后行”,现在,鸿蒙校园公开课曾经走进了135所高校,已有305所高校的学生积极参与鸿蒙流动,更有38万+开发者通过鸿蒙认证。高校为鸿蒙生态倒退储备生力军,既证实了高校看好鸿蒙人才的待业前景,也阐明鸿蒙为宽广学子提供了更多倒退的机会。 总的来说,鸿蒙人才供需两旺曾经成为了现在招聘市场中的一股热潮,高校毕业生和求职者只需跟着鸿蒙生态趋势,抓住机会就能找到属于本人的舞台! 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙 (Harmony OS)开发学习手册》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙根底入门学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙全套学习指南》

February 29, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS开发云数据库

您能够在云侧工程下开发云数据库资源,包含创建对象类型、在对象类型中增加数据条目、部署云数据库。 创建对象类型对象类型(即ObjectType)用于定义存储对象的汇合,不同的对象类型对应的不同数据结构。每创立一个对象类型,云数据库会在每个存储区实例化一个与之构造绝对应的对象类型,用于存储对应的数据。 您可在云数据库工程中创建对象类型。 1.右击“clouddb > objecttype”目录,抉择“New > Cloud DB Object Type”。2.输出“Object Type Name”后,点击“OK”。“clouddb/objecttype”目录下生成并关上新建的对象类型JSON文件。3.为该对象类型配置字段、索引、以及角色与权限。 在“fields”中为对象类型配置字段信息。 在“indexes”中为对象类型配置索引和索引详情。 在“permissions”中设置各角色是否具备该对象类型的Read、Upsert(蕴含新增和批改)和Delete权限。 创立数据条目创立完对象类型后,您可为对象类型增加数据条目(即DataEntry),来预置刷库数据。 反对手动创立和主动生成数据条目文件。 手动创立数据条目文件1.右击“clouddb/dataentry”目录,抉择“New > Cloud DB Data Entry”。2.在“Object Type”栏抉择需增加数据条目标对象类型,在“Data Entry Name”栏定义数据条目名,实现后点击“OK”。“clouddb/dataentry”目录下生成并关上新建的数据条目JSON文件,该文件中已为您预置好所选对象类型名称(如下图“objecttype1”)与字段名(如下图“id”、“bookName”、“author”、“price”、“publishTime”、“shadowFlag”)。3.配置存储区和字段的值(即数据)。 “cloudDBZoneName”:配置数据条目所在的存储区名称,如下图“cloudDBZone1”。“objects”:配置以后对象类型中所有字段的值。一个对象(object)即为一条数据,您能够通过新建一个对象(object)来为字段赋新值,也能够批改某个对象(object)下字段的值(主键或加密字段的值不反对批改)。 主动生成数据条目文件1.右击对象类型JSON文件,抉择“Generate Data Entry”。 以“objecttype1.json”文件为例,对象类型“objecttype1”蕴含了id、bookName、author、price、publishTime、shadowFlag六个字段。 2.在弹出的“Create Cloud DB Data Entry”框内,为行将生成的数据条目定义名称,如“dataentry1”。3.“clouddb/dataentry”目录下主动为该对象类型生成数据条目JSON文件,该文件中已为您预置好所选对象类型名称(如下图“objecttype1”)与字段名(如下图“id”、“bookName”、“author”、“price”、“publishTime”、“shadowFlag”)。4.配置存储区和字段的值(即数据)。 “cloudDBZoneName”:配置数据条目所在的存储区名称,如下图“cloudDBZone1”。“objects”:配置以后对象类型中所有字段的值。一个对象(object)即为一条数据,您能够通过新建一个对象(object)来为字段赋新值,也能够批改某个对象(object)下字段的值(主键或加密字段的值不反对批改)。 部署云数据库云数据库资源全副开发实现后,您能够将云数据库对立部署到AGC控制台。 1.右击“clouddb”目录,抉择“Deploy Cloud DB”。2.您可在底部状态栏右侧查看云数据库打包与部署进度。 请您急躁期待,直至呈现“Deploy successfully”音讯,示意云数据库已胜利部署。3.登录AppGallery Connect,进入以后我的项目的云数据库服务菜单,可别离在“对象类型”、“存储区”与“数据”页签查看到您刚刚部署的云数据库资源。 NOTE部署对象类型或数据条目JSON文件,理论是部署JSON文件内蕴含的对象类型或数据条目。因而,您在AGC控制台查看到的将是一个个对象类型或者一条条数据,而非JSON文件。您能够在AGC控制台持续编辑以上部署的云数据库资源,具体操作请参考治理数据库。那么要想成为一名鸿蒙高级开发,以上知识点是必须要把握的,除此之外,还须要把握一些鸿蒙利用开发相干的一些技术,须要咱们独特去摸索。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙根底入门学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图支付以上残缺高清学习路线图,请点击→《鸿蒙全套学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

February 29, 2024 · 1 min · jiezi

关于harmonyos:开年第一卷鸿蒙应用开发

前言浏览本文,你将解锁以下成就 鸿蒙利用开发公布鸿蒙ohpm包理解ArkTS、ArkUI语法如果文章对你有帮忙的话,记得一键三连哟。有问题和纳闷的话也能够在评论区留言。我会第一工夫回复大家,如果感觉我的文章哪里有知识点谬误的话,也恳请可能告知,把错的货色了解成对的,无论在什么行业,都是致命的。 依赖我的项目基于OpenHarmony、api10 、DevEco Studio 4.0 Beta2 我的项目仓库https://github.com/taosiqi/oh-mfa 编辑器装置https://developer.huawei.com/consumer/cn/forum/topic/02071242... 汉化进入插件核心,在已装置外面搜寻 chinese,勾选并确认,重启后汉化实现 SDK下载下载OpenHarmony、ArkUI 相干SDK 装置ohpmohpm相当于鸿蒙版本的npm,能治理依赖, 同时须要装置node工具,前面须要用到它提交包和装置依赖。 配置环境变量以mac为例,其余零碎自行搜寻 OHPM_HOME=/Users/taosiqi/Library/Huawei/ohpm # 替换为下图的门路export PATH=${PATH}:${OHPM_HOME}/bin项目管理导入工程新建我的项目临时不能应用api10,须要导入实例工程(不确定新建我的项目批改配置文件为api10能不能应用)查看配置文件,是用的10版本 批改我的项目信息依据本人的要求,批改包名、Icon、利用名称等 编译我的项目首次编译我的项目时,依据控制台提醒,生成证书,抉择真机运行,模拟器临时不反对api10我的项目真机运行 新增模块(可公布为ohpm包)在我的项目根目录,新增模块,新增 Static Library,我这里包名叫totp,前面以这个为例 我的项目开发删除无用目录删除包上面的/totp/src/main/ets/components目录,这个我的项目是抽离通用办法 编写包代码/totp/src/main/ets/下新建 totp.ets,导入本人写的公共办法 import { CryptoJS } from '@ohos/crypto-js'type HashAlgorithm = 'SHA1' | 'SHA224' | 'SHA256' | 'SHA384' | 'SHA512' | 'SHA3';interface TokenOptions { period?: number; digits?: number; timestamp?: number; algorithm?: HashAlgorithm | undefined;}/** * 生成验证码 * @param key * @param options * @returns */export function generateTotp(key: string, options?: TokenOptions): string { try { let epoch: number, time: string, mac: string, offset: number, otp: string; options = options || {}; options.period = options.period || 30; options.digits = options.digits || 6; options.timestamp = options.timestamp || Date.now(); options.algorithm = options.algorithm || "SHA1" key = base32hex(key); epoch = Math.floor(options.timestamp / 1000.0); time = leftPad(dec2hex(Math.floor(epoch / options.period)), 16, "0"); // 应用CryptoJS计算HMAC,动静抉择哈希算法 const keyHex = CryptoJS.enc.Hex.parse(key); const timeHex = CryptoJS.enc.Hex.parse(time); mac = hmacDigest(options.algorithm, timeHex, keyHex); offset = hex2dec(mac.substring(mac.length - 1)); otp = ((hex2dec(mac.substring(offset * 2, offset * 2 + 8)) & hex2dec("7fffffff")) + "").substring(0); otp = otp.substring(otp.length - options.digits); return otp; } catch (e) { return '' }}/** * 动静抉择算法 * @param algorithm * @param message * @param key * @returns */function hmacDigest(algorithm: HashAlgorithm, message: string, key: string): string { let mac switch (algorithm) { case 'SHA224': mac = CryptoJS.HmacSHA224(message, key); case 'SHA256': mac = CryptoJS.HmacSHA256(message, key); case 'SHA384': mac = CryptoJS.HmacSHA384(message, key); case 'SHA512': mac = CryptoJS.HmacSHA512(message, key); case 'SHA3': mac = CryptoJS.HmacSHA3(message, key); case 'SHA1': default: mac = CryptoJS.HmacSHA1(message, key) } return mac.toString(CryptoJS.enc.Hex);}/** * 将十六进制字符串转换为对应的十进制数值 * @param s * @returns */function hex2dec(s: string): number { return parseInt(s, 16);}/** * 将一个十进制数转换为对应的十六进制 * @param s * @returns */function dec2hex(s: number): string { return (s < 15.5 ? "0" : "") + Math.round(s).toString(16);}/** * base32转hex * @param base32 * @returns */function base32hex(base32: string): string { const base32chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; let bits = ""; let hex = ""; base32 = base32.replace(/=+$/, ""); for (let i = 0; i < base32.length; i++) { const val = base32chars.indexOf(base32.charAt(i).toUpperCase()); if (val === -1) throw new Error("Invalid base32 character in key"); bits += val.toString(2).padStart(5, '0'); } for (let i = 0; i + 8 <= bits.length; i += 8) { const chunk = bits.slice(i, i + 8); hex += parseInt(chunk, 2).toString(16).padStart(2, '0'); } return hex;}/** * 左侧填充字符串,确保填充后的字符串长度达到指定的长度 * @param str * @param len * @param pad * @returns */function leftPad(str: string, len: number, pad: string): string { if (len + 1 >= str.length) { str = Array(len + 1 - str.length).join(pad) + str; } return str;}安装包级别依赖cd totp,装置依赖 ohpm install @ohos/crypto-js ...

February 29, 2024 · 3 min · jiezi

关于harmonyos:HarmonyOS开发云工程与开发云函数

创立函数您可间接在DevEco Studio创立函数、编写函数业务代码、为函数配置调用触发器。 1.右击“cloudfunctions”目录,抉择“New > Cloud Function”。2.输出函数名称后,点击“OK”。 函数名称仅反对小写英文字母、数字、中划线(-),首字符必须为小写字母,结尾不能为中划线(-)。“cloudfunctions”目录下生成新建的函数目录。3.配置函数。 node_modules:主动为该函数引入的依赖包。function-config.json:函数的配置文件,可配置触发器,通过触发器裸露的触发条件来实现函数调用。在“triggers”下配置触发器,云函数目前反对以下5种触发器。 NOTICE如您需在函数部署实现后更新触发器,请先删除之前的触发器配置,再增加新的触发器配置,否则您的更新将不失效。HTTP触发器function-config.json文件中已为您主动实现HTTP触发器配置。函数部署到云端后会主动生成触发URL,在您向该URL发动HTTP申请时触发函数。对于如何应用HTTP触发器调用函数,请参见通过HTTP触发器调用函数。 { "type": "http", "properties": { "enableUrlDecode": true, "authFlag": "true", "authAlgor": "HDA-SYSTEM", "authType": "apigw-client" }}type:触发器类型,配置为“http”。properties:触发器属性,属性参数如下表所示。 CLOUDDB触发器为函数配置CLOUDDB触发器后,当云数据库产生插入或者更新数据、删除数据、清空数据等变更操作时将触发云函数。对于如何应用CLOUDDB触发器调用函数,请参见云数据库调用函数。 { "type": "clouddb", "properties": { "eventSourceId": "9***-test-user", "eventType": "onUpsert", "enabled": "true" }}type:触发器类型,配置为“clouddb”。properties:触发器属性,属性参数如下表所示。 AUTH触发器您能够为函数配置AUTH触发器来接管用户的注册、登录等要害事件。例如,若增加了“用户注册”事件类型的AUTH触发器,当认证服务检测到用户注册事件产生时将触发函数。对于如何应用AUTH触发器调用函数,请参见认证服务调用函数。 { "type": "auth", "properties": { "eventType": 0 }}type:触发器类型,配置为“auth”。properties:触发器属性,属性参数如下表所示。 CLOUDSTORAGE触发器为函数配置CLOUDSTORAGE触发器后,当AGC云存储服务中产生文件或者文件夹上传或删除操作时,将触发函数并执行您想要实现的性能。对于如何应用CLOUDSTORAGE触发器调用函数,请参见云存储调用函数。 { "type": "cloud_storage", "properties": { "bucketName": "harmony-0xnwg", "eventName": "storage.upload.completed" }}type:触发器类型,配置为“cloud_storage”。properties:触发器属性,属性参数如下表所示。 helloworld.ts:函数入口文件(此处以“helloworld.ts”为例,请以理论名称为准)。请参考开发函数编写函数代码。 package.json:蕴含了以后函数的名称、版本等函数元数据。package.json内主动引入了云数据库的最新版本Node.jsServer SDK,您也能够在“dependencies”下增加其余须要的依赖。 package-lock.json:保留了node_modules中所有包的信息,如版本、下载地址等。 调试函数函数开发过程中,您可在本地进行调试。或者您也能够将函数部署到AGC云端后,在本地触发调用云端函数。 目前本地调试反对Run和Debug两种模式。Debug模式反对应用断点来追踪函数的运行状况,Run模式则不反对。 NOTICE在通用云开发模板工程与商城模板工程下调试函数的流程基本一致,但商城模板工程目前存在一些非凡限度,因而如需调试商城模板工程函数,请间接参考调试商城模板工程函数操作。Run模式启动调试1.右击“cloudfunctions”目录,抉择“Run Cloud Functions”。 NOTE间接从以后门路下Run,应用的是默认的Run配置,您也可自定义Run配置。自定义Run配置后再从此门路下Run,将优先采纳自定义Run配置。2.查看“Run”面板。如果呈现“Cloud Functions loaded successfully”,示意所有函数已胜利加载到本地运行的HTTP Server中,并生成对应的POST URL。3.在菜单栏抉择“Tools > CloudDev > Cloud Functions Requestor”,应用Cloud Functions Requestor触发函数调用。4.在弹出的“Cloud Functions Requestor”面板,填写触发事件参数。 ...

February 28, 2024 · 1 min · jiezi

关于harmonyos:鸿蒙应用成企业布局新方向-鸿蒙人才成开年之后香饽饽

随着春节假期的完结,职场人也开始返工返岗。与此同时2024年春招季也已拉开帷幕。2月23日,据智联招聘公布的《2024年春招市场行情周报》(第一期)显示,2024年春节后第一周,依靠生产需要开释与制造业返工复产,待业市场呈现出较快回暖复苏态势,服务生产、高端制作类行业和岗位增长快,鸿蒙生态相干岗位发展潜力显著。 2024年春招季鸿蒙生态成招聘增长亮点而据这份《2024年春招市场行情周报》(第一期)显示的招聘增长亮点畛域则颇为引人瞩目。智联招聘数据显示,春节后动工第一周,鸿蒙相干职位数同比增长163%,投递人数同比增长349%,即别离增至去年同期的2.6倍、4.5倍,涨势突出。 自2023年9月鸿蒙原生利用全面启动以来,金融、生存、社交、娱乐等畛域的鸿蒙原生利用减速开发,带动人才需求继续开释,吸引大量人才涌入。智联招聘数据显示,2023年9-12月,鸿蒙相干职位数同比增速从33.8%攀升至216.1%,鸿蒙相干职位的投递人数同比增速从132.1%攀升至380.1%,鸿蒙人才供需两旺。 具体看鸿蒙相干岗位的行业散布,排名靠前的是计算机软件、互联网行业,2023年9月以来,这两个行业的鸿蒙相干岗位别离占32.3%、22.1%,共计超5成。其次是IT服务、通信/网络设备、集成电路、汽车制作等行业,也位列前十。鸿蒙零碎生态已笼罩智能手机、平板电脑、耳机、智能手表及智能汽车零碎等多元设施,波及不同场景的软件、利用、硬件开发,相干企业对鸿蒙人才需求旺盛。从企业规模看,大型企业是招聘主体,10000人以上、1000-9999人企业招聘鸿蒙相干职位数别离占32.8%、34.3%,共计约7成。500-999人、100-499人、100人以下企业招聘别离占1成左右。 从鸿蒙相干岗位的职业散布看,开发岗是外围,挪动研发、软件研发、前端开发位列前三,招聘职位数别离占31.5%、25.7%、12.2%,共计约7成。此外,鸿蒙生态还须要硬件研发、测试工程师、运维反对、售前售后工程师、IT培训等人才。具体看鸿蒙开发岗的招聘薪资,达到18191元/月,比总体开发岗的均匀薪资(16617元/月)高出9%。 鸿蒙待业前景广大,企业人才竞争加剧从以上数据来看,鸿蒙生态的疾速倒退不仅为企业及求职者带来了新的时机,同时也激发了待业市场新生机。仅从鸿蒙相干职位的投递人数同比增速从132.1%攀升至380.1%,这一个数据就表明鸿蒙开发类岗位已成为计算机相关业余应届生和程序员的求职新抉择,随着求职者对鸿蒙生态的认可,畛域发展前景看好。而2023年9-12月,鸿蒙相干职位数同比增速从33.8%攀升至216.1%,大型企业招聘占比7成,则表明企业对于鸿蒙人才需求量激增。随着HarmonyOS NEXT鸿蒙星河版二季度推出开发者Beta版,需要市场将进一步扩充,然而如何在强烈的人才竞争中怀才不遇,吸引更多鸿蒙人才,可能将成为企业面临的一大挑战。在薪资方面,鸿蒙开发岗的均匀月薪超1.8万,比行业均匀薪酬高9%。特地是对于领有5年以上教训的资深鸿蒙开发岗,招聘薪资为25241元/月,成为新高薪待业岗位。因为以后招聘主体大多是大型企业,可能给求职者提供更加广大的平台,以及更高的薪资待遇,无疑可能激发更多人才投身鸿蒙生态。 鸿蒙生态产学单干增强,为产业倒退注入生机对于任何产业生态建设来说,人才都居于外围位置,只有源源不断的人才供应,才是生态成长和进阶的不竭能源。除了市场用这只“看不见的手”在主动调节市场上人才的配给之外,高校人才培养也在为鸿蒙生态倒退储备生力军。 目前,鸿蒙校园公开课已走进135家高校,305所高校学生参加鸿蒙流动,超过38万开发者通过鸿蒙认证。此外,教育部鸿蒙产学合作项目在2021年、2022年、2023年数量别离为20、65、68,呈继续增涨态势。越来越多的高校曾经或行将开设HarmonyOS的相干课程,表明高校看好鸿蒙人才的待业前景,同时高校对鸿蒙人才的造就,有助于缓解待业市场供需失衡的问题。 从近年来产生的新技术方向来看,一项新的技术衰亡往往会催生一大批新的岗位,例如随同AI技术衰亡诞生的人工智能算法工程师、机器学习工程师,随同4G、5G技术倒退催生的直播销售员、网约配送员等等。鸿蒙操作系统的倒退同样也会带来新的岗位工种,如鸿蒙利用开发者、鸿蒙测试工程师等。这些新兴岗位为求职者提供了更多抉择,同时也为产业将来倒退注入新生机。 鸿蒙生态的蓬勃发展不仅有利于进一步晋升我国操作系统生态的倒退、软件产业的技术水平,更能够激发待业市场新生机。随着5G、物联网等技术的疾速倒退,鸿蒙操作系统在智能硬件、智能家居、车联网等畛域的利用前景广大。这将进一步带动待业市场,为求职者提供更多时机。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙根底入门学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙全套学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

February 28, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS端云体化开发创建端云一体化开发工程

云开发工程模板DevEco Studio目前提供了两种云开发工程模板:通用云开发模板和商城模板。您可依据工程向导轻松创立端云一体化开发工程,并主动生成对应的代码和资源模板。在创立端云一体化开发工程前,请提前理解云开发工程模板的相干信息。 须要留神的是,在您体验应用云开发模板创立的利用前,需返回AGC控制台启用手机号码认证并应用手机号码登录利用。 新建HarmonyOS利用工程前提条件您已应用已实名认证的华为开发者帐号登录DevEco Studio。请确保您的华为开发者帐号余额短缺,账户欠费将导致云存储服务开明失败。抉择云开发模板1.抉择以下任一种形式,关上工程创立向导界面。如果以后未关上任何工程,能够在DevEco Studio的欢送页点击“Create Project”开始创立一个新工程。如果曾经关上了工程,能够在菜单栏抉择“File > New > Create Project”来创立一个新工程。 2.在“Application”页签,抉择须要的云开发模板(下文以商城模板为例),而后点击“Next”。 NOTE应用商城模板,请先点击“Template Market”进入模板市场进行下载,下载胜利后即可在“Application”页签抉择到该模板。 配置工程信息1.在工程配置界面,配置工程的根本信息。2.点击“Next”,开始关联云开发资源。 关联云开发资源为工程关联云开发所需的资源,即在DevEco Studio中抉择您的华为开发者帐号退出的开发者团队,将该团队在AGC的同包名利用关联到以后工程。具体操作如下: 1.(可选)如您尚未登录DevEco Studio,点击“Sign in”,在弹出的帐号登录页面,应用已实名认证的华为开发者帐号实现登录。 登录胜利后,界面将展现帐号昵称。2.点击“Team”下拉框,抉择开发团队。 NOTICE团队帐号持有者需为团队实现实名认证。3.关联利用。 选中团队后,零碎依据工程包名在该团队中主动查问AGC上的同包名利用。 如查问到利用,选中该利用,点击“Finish”即可。 如查问到的利用尚未关联任何我的项目,则无奈选中。请先将利用增加到您的我的项目下。 如果查问到的利用所属我的项目尚未启用数据处理地位,请点击界面提醒内的“AppGallery Connect”设置数据处理地位。NOTICE因为云开发目前仅反对中国站点,请确保我的项目启用的数据处理地位蕴含中国站点。无论我的项目启用的默认数据处理地位为哪个站点,后续开发的云服务资源都将部署在中国站点。 如在以后团队中未查问到同包名利用,请先确认填写的包名是否有误。如包名有误,点击界面提醒中的“go back”返回工程信息配置界面进行批改。如包名无误,则表明以后团队尚未在AGC控制台创立与以后工程包名雷同的利用。您可点击界面提醒中的“AppGalleryConnect”,返回AGC控制台创立同包名利用。实现以上操作后,DevEco Studio即可获取到同包名利用信息。选中利用后,点击“Finish”。4.如您所属的团队尚未签订云开发相干协定,点击协定链接仔细阅读协定内容后,勾选批准协定,点击“Finish”,进入主开发界面。 NOTE只有帐号持有者和法务角色才有权限签订协定。5.在主开发界面,可查看刚刚新建的工程。对于工程的具体目录构造介绍,请参见端云一体化开发工程介绍。 新建元服务工程前提条件您已应用已实名认证的华为开发者帐号登录DevEco Studio。请确保您的华为开发者帐号余额短缺,账户欠费将导致云存储服务开明失败。抉择云开发模板1.抉择以下任一种形式,关上工程创立向导界面。 如果以后未关上任何工程,能够在DevEco Studio的欢送页点击“Create Project”开始创立一个新工程。如果曾经关上了工程,能够在菜单栏抉择“File > New > Create Project”来创立一个新工程。2.点击“Atomic Service”页签,抉择预置的通用云开发模板,而后点击“Next”。 NOTE元服务工程暂不反对抉择商城模板。元服务调试、运行时,在设施桌面上没有利用图标,请应用DevEco Studio的调试和运行性能,来启动元服务。元服务是免装置的,Stage模型中在module.json5文件主动增加“installationFree”字段,取值为“true”;在app.json5文件主动增加“bundleType”字段,取值为 "atomicService"。编译构建APP时,每个HAP大小不能超过10MB。 配置工程信息1.在工程配置界面,配置工程的根本信息。2.点击“Next”,开始关联云开发资源。 关联云开发资源为工程关联云开发所需的资源,即在DevEco Studio中抉择您的华为开发者帐号退出的开发者团队,将该团队在AGC的同包名利用关联到以后工程。具体操作如下: 1.(可选)如您尚未登录DevEco Studio,点击“Sign in”,在弹出的帐号登录页面,应用已实名认证的华为开发者帐号实现登录。 登录胜利后,界面将展现帐号昵称。 2.点击“Team”下拉框,抉择开发团队。 NOTICE团队帐号持有者需为团队实现实名认证。3.关联利用。 选中团队后,零碎依据工程包名在该团队中主动查问AGC上的同包名利用。 如查问到利用,选中该利用,点击“Finish”即可。 如查问到的利用尚未关联任何我的项目,则无奈选中。请先将利用增加到您的我的项目下。 如果查问到的利用所属我的项目尚未启用数据处理地位,请点击界面提醒内的“AppGallery Connect”设置数据处理地位。NOTICE因为云开发目前仅反对中国站点,请确保我的项目启用的数据处理地位蕴含中国站点。无论我的项目启用的默认数据处理地位为哪个站点,后续开发的云服务资源都将部署在中国站点。 如在以后团队中未查问到同包名利用,请先确认填写的包名是否有误。如包名有误,点击界面提醒中的“go back”返回工程信息配置界面进行批改。如包名无误,则表明以后团队尚未在AGC控制台创立与以后工程包名雷同的利用。您可点击界面提醒中的“AppGalleryConnect”,返回AGC控制台创立同包名利用。实现以上操作后,DevEco Studio即可获取到同包名利用信息。选中利用后,点击“Finish”。4.如您所属的团队尚未签订云开发相干协定,点击协定链接仔细阅读协定内容后,勾选批准协定,点击“Finish”,进入主开发界面。 NOTE只有帐号持有者和法务角色才有权限签订协定。5.在主开发界面,可查看刚刚新建的工程。对于工程的具体目录构造介绍,请参见端云一体化开发工程介绍。 工程初始化配置当您胜利创立工程并关联云开发资源后,DevEco Studio会为您的工程主动执行一些初始化配置。 主动开明云开发相干服务DevEco Studio为工程关联的我的项目主动开明云开发相干服务:认证服务、云函数、云数据库、云托管、API网关、云存储。您可在“Notifications”窗口查看服务开明状态。 ...

February 28, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS使用数据模型和连接器

Serverless低代码开发平台是一个可视化的平台, 买通了HarmonyOS云侧与端侧能力,可能轻松实现HMS Core、AGC Serverless能力调用。其中,数据模型和连接器是两大次要元素。开发者在应用DevEco Studio的低代码性能进行开发时,能够应用其可视化、傻瓜式的操作配置构建HarmonyOS元服务、PC Web利用,助力元服务疾速开发与降本增效。 NOTE该性能在DevEco Studio 3.1 Beta2及更高版本中反对,且创立的工程必须是compileSdkVersion为6的JS工程。工程配置 1.登录AppGallery Connect云控制台并创立本人的指标我的项目,并创立一个指标工程。2.DevEco中新建API6 JS 低代码工程,留神Bundle Name要和云控制台里设置的包名统一,否则运行时会报错bundleName不统一。3.在AppGallery Connect云平台,点击‘我的项目设置’,下载agconnect-services.json文件,搁置在MyApplication工程的entry目录下。至此实现了开发低代码云端工程的初始化配置。 数据模型治理与应用在AppGallery Connect云平台创立数据模型当前,可能在DevEco Studio端应用定义好的数据模型。 治理数据模型在数据模型界面, 能够新建、批改、更新、删除数据模型及其详细信息。 应用数据模型 连接器治理与应用同样,在AppGallery Connect云平台创立连接器当前,可能在DevEco Studio端应用定义好的连接器。 连接器治理在连接器治理界面,能够新建、批改、更新、删除连接器及其详细信息。 连接器应用在云平台定义好连接器当前,能够在DevEco Studio桌面端应用。 1.关上一个低代码visual文件。 2.抉择刚刚定义好的连接器, 点击submit,DevEco Studio会在同名的js文件中主动生成相应代码。 3.Build我的项目,生成HAP,推送到真机或者模拟器上即可查看成果。 那么要想成为一名鸿蒙高级开发,以上知识点是必须要把握的,除此之外,还须要把握一些鸿蒙利用开发相干的一些技术,须要咱们独特去摸索。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙 (Harmony OS)开发学习手册》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙全套学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙根底入门学习指南》

February 27, 2024 · 1 min · jiezi

关于harmonyos:鸿蒙程序员平均月薪超1万8春招季鸿蒙岗位需求激增

随着春招季的邻近,人才市场的动静成为各界关注的焦点。据智联招聘最新数据显示,往年秋季招聘中,鸿蒙相干职位的需求量是去年的近三倍,这一显著增长引发了宽泛关注。 就在本月初,华为在其HarmonyOS的新年贺词中走漏了一个重要信息:基于开源鸿蒙开发的HarmonyOS NEXT鸿蒙星河版将于往年秋天正式与消费者见面。这一音讯无疑为鸿蒙生态的倒退注入了新的生机,同时也催生了企业对鸿蒙人才的迫切需要。 春节后的第一周,鸿蒙相干职位的数量同比增长了惊人的163%,而投递这些职位的人数也同比增长了349%。这一数据不仅反映了鸿蒙开发畛域的热门水平,也凸显了求职者对鸿蒙生态的认可和期待。 更值得关注的是,鸿蒙开发岗位的招聘薪资也呈现出上涨趋势。据智联招聘数据显示,鸿蒙开发岗的均匀招聘薪资达到了18191元/月,比总体开发岗的均匀薪资(16617元/月)高出9%。这一薪资程度无疑吸引了大量求职者的眼光,也进一步加剧了鸿蒙人才的竞争。 “抢滩”鸿蒙,人才后行。以后,鸿蒙人才供需两旺的场面不仅预示着鸿蒙开发这一新兴待业抉择具备广大的前景,也为鸿蒙生态的继续倒退带来了踊跃信号。 随着更多企业退出鸿蒙生态,以及鸿蒙技术在各行业的广泛应用,鸿蒙人才的需要预计将持续放弃增长态势。 鸿蒙浪潮已势不可挡,不少互联网人看到先机,想要抢占风口,换道领跑,实现遥遥领先! 但学习考究章法,目前市面上还缺一份实用且全面的鸿蒙学习路线图以及配套的我的项目课程,导致万千学子在学习鸿蒙的路上没有方向,不是困难重重,就是走了很多弯路!还有局部学生因为走错方向,节约了大量的工夫和金钱! 为了节俭大家一些查找的工夫,这边联结几位行业大佬,为大家筹备了一份《鸿蒙全栈技术 实战我的项目驱动式教学》的学习导图,从入门到进阶再到南北向开发实战的一整套残缺体系,想要学习理解更多鸿蒙开发的相干常识能够借鉴:《鸿蒙根底入门学习指南》 支付以上残缺高清学习路线图,请点击→《鸿蒙全套学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

February 27, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS低代码开发中使用自定义组件

开发者在应用DevEco Studio的低代码性能进行可视化开发时,能够通过自定义组件性能自在封装业务逻辑类组件,实现能力复用,升高开发及保护老本。 NOTE该性能在DevEco Studio 3.1 Beta2及更高版本中反对,且创立的工程必须是compileSdkVersion为8或以上的ArkTS工程。自定义组件由已有的根底组件(或组合)创立自定义组件1.右击根底组件(或组件组合),在弹出的菜单中选择Create Custom Component。 2.在弹出的对话框中输出自定义组件名称,而后单击OK。 自定义组件创立实现后,DevEco Studio将会主动生成.visual和.ets文件,Stage模型和FA模型下生成的文件门路有所区别: List itemStage模型:.visual文件:src/main/supervisual/page/xxx.visual.ets文件:src/main/ets/page/xxx.etsFA模型:.visual文件:src/main/supervisual/xxxAbility/common/xxx.visual.ets文件:src/main/ets/xxxAbility/common/xxx.ets3.自定义组件创立实现后,DevEco Studio将主动关上自定义组件设计界面,开发者能够在设计界面编辑自定义组件的属性、事件和布局。 新建一个自定义组件1.选中反对的目录,抉择File > New > Visual > Component,或者右击目录,抉择New > Visual > Component。 其中反对新建自定义组件的目录,Stage模型和FA模型有所区别: Stage模型:切换到Ohos视图后的ets目录及上司目录(不蕴含test目录)。FA模型:切换到Ohos视图后的Page类型Ability目录及上司目录。2.在弹出的New Visual Component对话框中,输出自定义组件名称,单击Finish。 3.自定义组件创立实现后,DevEco Studio将主动关上自定义组件设计界面,开发者能够在设计界面编辑自定义组件的属性、事件和布局。 应用自定义组件自定义组件创立后,开发者能够间接在利用设计界面的Custom页签查看到曾经创立的自定义组件,并能够间接拖拽到画布中应用,另外开发者也能够在.ets代码页面间接导入并应用自定义组件。 在.ets代码页面应用自定义组件示例如下所示: import ImgButton from '../CustomComponents/ImgButton'@Entry@Componentstruct Index { @State message: string = 'Hello World' build() { Column(){ ImgButton() } .width('100%') .height('100%') }}自定义属性开发者能够为自定义组件设置自定义属性。 1.在自定义组件的.ets文件中定义变量。 例如: @Preview@Componentexport default struct ImgButton { @State customLable:string = 'This is my comp' build() { }}2.在应用自定义组件的设计界面中,抉择该自定义组件,在属性栏中将显示自定义属性。开发者可自行设置属性值,设置属性值后可同步批改自定义组件显示成果。 ...

February 27, 2024 · 1 min · jiezi

关于harmonyos:教不会你算我输系列-手把手教你HarmonyOS应用开发

作者 | 小狮子 导读 鸿蒙零碎(HarmonyOS)是华为推出的一款面向万物互联的全场景分布式操作系统。鸿蒙反对手机、平板、智能穿戴、智慧屏和车机等多种终端设备,发展史如下: 01 HarmonyOS开发简介1.1 技术概念在万物智联时代重要机遇期,鸿蒙零碎联合挪动生态倒退的趋势,提出了三大技术理念:一次开发,多端部署;可分可合,自在流转;对立生态,原生智能。 1.1.1 一次开发,多端部署 一次开发,多端部署:指的是一个工程,一次开发上架,多端按需部署。目标是为了撑持开发者高效的开发多种终端设备上的利用。为了实现这一目标,鸿蒙零碎提供了几个外围能力,包含多端开发环境,多端开发能力及多端散发机制。 1.1.2 可分可合,自在流转元服务是鸿蒙零碎提供的一种全新的利用状态,具备独立入口,用户能够通过点击、碰一碰,扫一扫等形式间接触发,无需显式装置,由程序框架后盾静默装置应用,可为用户提供便捷服务。 可分可合:在开发态,开发者通过业务解耦,把不同的业务拆分为多个模块。在部署态,开发者能够将一个或多个模块自由组合,打包成一个 App Pack 对立上架。在散发运行态,每个 HAP 都能够独自散发满足用户繁多应用场景,也能够多个 HAP 组合散发满足用户更加简单的应用场景。 自在流转:传统利用只能在单个设施内运行,当用户有多个设施,且要实现多个工作时,则要在多个设施间来回切换。因而利用可能在设施之间流转,不间断给用户提供服务的能力就变得十分重要。鸿蒙零碎提供了自在流转的能力,使得开发者能够不便的开发出逾越多个设施的利用,用户也可能不便的应用这些性能。 1.1.3 对立生态,原生智能对立生态:挪动操作系统和桌面操作系统的跨平台利用开发框架不尽相同,从渲染形式的角度能够演绎为 WebView 染原、原生渲染和自渲染这三类,鸿蒙零碎对应的提供零碎 WebView、ArkUI 框架和 XComponent 能力来撑持三种类型的跨平台框架的接入。 原生智能:鸿蒙零碎内置弱小的 AI 能力,面相鸿蒙生态利用的开发,通过不同档次的 AI 能力凋谢,满足开发者的不同开发场景下的诉求,升高利用的开发门槛,帮忙开发者疾速实现利用智能化。 1.2 开发套件 鸿蒙开发套件蕴含设计、开发、测试、运维套件以及 OS 凋谢能力集: HarmonyOS Design:鸿蒙视觉设计套件 ArkTS:鸿蒙编程语言 ArkUI:鸿蒙申明式UI框架 ArkCompoler:鸿蒙方舟编译器 DevEco Studio:鸿蒙开发IDE DevEco Testing:鸿蒙测试套件 AppGallery Connect:鸿蒙利用公布套件 1.2.1 开发语言 - ArkTSArkTS基于TypeScript(简称TS)的超集,扩大名为.ets,继承了TS的所有个性(NEXT版本有阉割)。引入了动态类型,扩大了申明式UI、状态治理等能力,让开发者以更简洁、更天然的形式开发高性能利用。 1.2.2 ArkUI框架 ArkUI框架提供开发者两种开发方式:基于ArkTS的申明式开发范式和基于JS扩大的类Web开发范式。申明式开发范式更加简洁,类 Web 开发范式对 Web 及前端开发者更敌对。 (1)ArkTS的申明式开发范式: 采纳申明式开发范式进行利用开发,雷同场景下,比照类 Web 开发范式代码更为精简,并且在性能内存方面进一步优化晋升。另外 ArkUI 框架还提供了 API 扩大机制,通过此种机制进行封装格调对立的 JS 接口。包含状态治理、布局、组件化、装璜器、动效、事件交互、绘制能力、混合开发、跨平台。 ...

February 27, 2024 · 5 min · jiezi

关于harmonyos:HarmonyOS低代码开发中使用业务组件

开发者在DevEco Studio低代码能够通过拖拽组件栏提供的业务组件,疾速开发蕴含华为帐号登录、华为领取场景的利用。低代码的登录、领取业务组件都是通过集成AGC提供的SDK实现,低代码简化了手动集成SDK、调用SDK接口的工作。 NOTE该性能在DevEco Studio 3.1 Beta2及更高版本中反对,且创立的工程必须是compileSdkVersion为6的JS工程。登录组件与手动应用华为登录SDK相似,在低代码中应用登录组件,依然须要筹备工作。 筹备工作1.创立我的项目,可参考在AGC创立我的项目。2.创立利用,可参考在AGC创立利用。3.获取agconnect-services.json文件。4.开明认证服务并启用“华为帐号”认证形式,详情请参见认证服务-华为帐号。 应用登录组件1.在DevEco Studio中新建API6 JS低代码工程,在菜单栏中点击“File > New > Create Project”,抉择“Atomic Service”或“Application”。这里以创立元服务为例,抉择“Atomic Service”。抉择Empty Ablity模板,点击“Next”。2.填写工程信息,留神Bundle Name要和云控制台里设置的包名统一,否则运行时会报错bundleName不统一。3.将筹备工作步骤3下载的agconnect-services.json文件,搁置在工程的entry目录下。4.拖拽登录组件到设计器,主动同步依赖,生成调用登录性能代码。开发者能够绑定本人登录胜利或者失败的回调。5.开发者依据利用性能,配置登录组件的款式属性。 6.如须要其余登录性能(如登出、获取用户信息等)可参考: 登录后,调用LOW_CODE_LOGIN.getCurrentUser()接口查问用户信息。agcLogin.getCurrentUser().then((data) => { this.showToast(" currUser is " + data.accessToken.token);}, (err) => { this.showToast(" get user fail, error code: " + err);});调用登出接口LOW_CODE_LOGIN.signOut()退出登录。var result = await agcLogin.signOut();7.配置利用签名和指纹,可参考利用签名。配置实现后,能够在真机上进行调试。 NOTE配置利用指纹后,须要期待一段时间指纹能力失效。在失效之前,登录组件调SDK接口可能会返回错误码6003。如果配置完指纹,运行本地客户端依然呈现6003的谬误,这是因为默认运行的是debug证书,请尝试革除HMS Core(APK)的缓存后再次运行应用领取组件与手动应用华为领取SDK相似,在低代码中应用领取组件,依然须要筹备工作。 筹备工作1.创立我的项目,可参考在AGC创立我的项目。2.创立利用,可参考在AGC创立利用。3.获取agconnect-services.json文件。4.已注册成为商户。5.开明利用内领取服务,详情请参见配置领取服务参数。6.配置领取相干数据模型。 a.登录AppGallery Connect,抉择“我的我的项目”,抉择您的我的项目。 b.抉择“低代码平台 > 数据模型”,点击页面中的“新建数据模型”。 根底商品表主键字段: 商品表主键字段: 订单表主键字段:c.抉择“低代码平台 > 数据模型”,点击页面中的“新建数据模型”,别离配置“商品表”、“根底商品表”和“订单表”的数据模型字段。 根底商品表字段信息: 商品表字段信息: 订单表字段信息:d.数据模型配置实现后,点击数据模型“操作”列的公布。 e.在已公布的数据模型中,点击操作列的“治理数据”进入页面,点击“新建”,新增数据,填写实现后点击“提交”。 在“根底商品表”数据模型中新增根底商品信息,数据如下: 在“商品表”数据模型中新增商品信息,数据如下:NOTE“根底商品ID”字段与根底商品表中的主键必须保持一致。7.配置IAP商品表。 新建IAP商品表,具体操作请参见创立利用内商品。商品信息表字段信息如下: NOTE商品表中的“商品ID”必须与商品表数据模型中的“IAP商品ID”保持一致。 应用领取组件1.在DevEco Studio中新建API6 JS 低代码工程,在菜单栏中点击“File > New > Create Project”,抉择“Atomic Service”或“Application”。这里以创立元服务为例,抉择“Atomic Service”> Empty Ablity模板,点击“Next”。 ...

February 26, 2024 · 1 min · jiezi

关于harmonyos:AI云增强升级还原生动人像拍出质感照片

近期不少仔细用户发现,在用HUAWEI Mate 60 Pro手机拍照后,应用相册中的AI云加强性能,照片变得更加细腻有质感。这是因为AI云加强降级并更新反对了人像模式拍摄的照片,高清天然的人像细节还原和单反级别的光学景深成果,让用户一只华为手机就能顺手拍出好照片。 还原活泼人像,尽显肌肤质感 最新版本的AI云加强性能实现了亮度、色调与细节的更新优化,凸显出更具立体感的五官面容和更活泼实在的肌肤质感。AI云加强基于云侧的亿级参数大模型进行解决,依赖上百台云服务器进行算力撑持。“云上修图”时,人像区域会进行分频解决,低频局部精确构建人像构造,高频局部专一复原实在肤感,在打造高清人像的同时,尽显人物面部平面五官和质感肌肤。即使是多人大合照,AI云加强也能对画面中的所有人像拍照成果优化加强,还原活泼人像。 单反级光学景深成果,丰盛照片空间档次 “先拍摄,后对焦”,AI云加强新增反对人像模式照片,让摄影小白通过一只华为手机,就能轻松上手领有前后景虚化成果的“气氛感”人像照片。 AI云加强构建了海量靠近单反的大光圈数据集,使背景虚化更实在天然。人像模式下发丝级的辨认精度,实现虚化成果的精准宰割,前景半透柔和,背景梦幻朦胧,让“云上修图”后的照片更具空间层次感。 HarmonyOS降级至最新版本后,除了HUAWEI Mate 60 Pro,还有HUAWEI Mate 60 Pro+、HUAWEI Mate 60 RS不凡巨匠、HUAWEI Mate X5以及HUAWEI Pocket2型号的华为手机用户可尝鲜应用AI云加强的降级性能,后续AI云加强性能也将会陆续反对更多手机机型。

February 26, 2024 · 1 min · jiezi

关于harmonyos:2024-春招市场行情报告鸿蒙人才遭爆抢

前言 2024年能够说是布道鸿蒙开发行业的最佳时机,华为在千帆启航典礼会中发布会中示意,已有200家头部企业退出原生开发当中,并且始终有高薪抢人的场面,这一信息曾经引起业界很大关注。 因而有很多公司开始筹备要招聘鸿蒙工程师,年轻人要是想搞一个有前途的岗位,鸿蒙零碎、OpenHarmony零碎的生态开发目前是一个暴发期。 随着春节假期完结各行各业复产停工,一年一度的春招也继续炽热起来。最近,有招聘平台公布了《2024 年春招市场行情周报(第一期)》。总体来说往年的待业市场还是人才饱和的状态,竞争会比拟强烈。 然而,通过报告咱们也能看到让人眼前一亮的信息,比方华为鸿蒙零碎对应的人才市场就呈现出“供需两旺”的场景。 不久前华为曾经发表全新 HarmonyOS NEXT 鸿蒙星河版将在往年秋天正式和消费者见面,并曾经面向开发者凋谢申请。鸿蒙星河版会有更智能、更极致的原生体验,也标记着鸿蒙迈向其倒退的第二阶段。 因而,对于鸿蒙生态建设而言,2024 年堪称至关重要,而生态建设的前提,就是要有足够的开发人才。与之对应的,往年春招市场上与鸿蒙相干岗位和人才旺盛的热度,一方面反馈了鸿蒙生态的逐步壮大,另一方面也让人们对鸿蒙下一阶段的倒退更具信念 第一、鸿蒙人才供需两旺,成为求职者重点关注的新抉择具体来说,报告中的数据显示,春节后动工第一周,鸿蒙相干职位数同比增长 163%,投递人数同比增长 349%,即别离增至去年同期的 2.6 倍、4.5 倍,涨势突出。 这背地是自去年 9 月鸿蒙原生利用全面启动以来,金融、生存、社交、娱乐等畛域的鸿蒙原生利用减速开发,带动人才需求继续开释,吸引大量人才涌入。 报告中有进一步数据为证。2023 年 9-12 月,鸿蒙相干职位数同比增速从 33.8% 攀升至 216.1%,鸿蒙相干职位的投递人数同比增速从 132.1% 攀升至 380.1%。 抢滩鸿蒙,人才后行。无论是对用人单位还是对求职者来说,“鸿蒙”都是值得重点关注的畛域,相干人才供需两旺已是事实。 比方,对于宽广求职者来说,抉择鸿蒙,在待业前景这方面能够说是一片新蓝海。正如后面的数据所出现的,鸿蒙相干的岗位不仅需求量大,而且始终是增长的态势,阐明这一畛域正处于倒退的回升阶段,生态倒退的红利不可估量,前景天然大好。 第二、鸿蒙生态助力行业蓬勃发展,新生力量源源不断鸿蒙人才供需两旺,在招聘市场火爆的背地,其实是鸿蒙生态逐步壮大,在各行各业中的影响力越来越大的映证。 据悉,目前已有 305 所高校学生参加了鸿蒙流动,鸿蒙校园公开课也进入 135 所高校,286 家企业加入鸿蒙生态学堂,同时,教育部鸿蒙产学合作项目也达到了 150 多个,高校和企业开设鸿蒙相干的课程和培训,足以表明他们对于鸿蒙人才待业前景的看好。 而对于学生们来说,学习鸿蒙相干课程、成为一名鸿蒙开发者,也曾经成为摆在大家背后须要重点关注的学习方向和待业抉择的趋势,事实上,华为也提供了系统化残缺的 HarmonyOS 开发课程学习及认证考试体系,不便大家一直进阶把握鸿蒙利用及元服务开发的更多能力,目前曾经有 38 万 + 开发者通过了鸿蒙认证。 事实上,鸿蒙零碎生态可能在问世至今不到五年的工夫里迅速壮大,并且在往年怯懦地迈向“纯原生”的新阶段,华为对开发人才的器重,可列为最重要的因素之一。现在待业市场上鸿蒙人才被“爆抢”,何尝不是行业法则对华为器重人才的一种“回报”? 而让每一位开发人才都可能发光发亮,能力走出全新的生态之路,从而更进一步点亮我国信息技术产业倒退的前路。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙根底入门学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。最初 鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

February 26, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS低代码开发Demo示例

接下来为大家展现一个低代码开发的JS工程的Demo示例,应用低代码开发如下华为手机介绍列表的HarmonyOS利用/服务示例。 1.删除模板页面中的控件后,选中组件栏中的List组件,将其拖至地方画布区域,松开鼠标,实现一个List组件的增加。在List组件增加实现后,用同样的办法拖拽一个ListItem组件至List组件内。 2.选中画布内的List组件,按住控件的resize按钮,将List拉大。 3.顺次选中组件栏中的Div、Image、Div、Text组件,将Div组件拖至地方画布区域的ListItem组件内,Image、Div组件拖至画布内Div组件内,Text组件拖至最内层Div组件内。 4.别离选中组件树中的ListItem和外层Div组件,单击右侧属性款式栏中的款式图标(General),在开展的General栏中批改ListItem和Div组件的高度。 5.对内层Div组件的款式进行调整 。 6.js的数据及办法关联。 js文件用来定义页面的业务逻辑,基于JS语言的动态化能力,能够使利用/服务更加富裕表现力,具备更加灵便的设计。低代码页面反对设置属性(Properties)和绑定事件(Events)时关联js文件中的数据及办法。 a.在低代码页面关联js文件的data对象中定义phoneList数组。 b.选中组件树中的ListItem组件,单击右侧属性款式栏中的属性图标(Properties),在开展的Properties栏中单击For属性对应的输入框,并在弹出的下拉框中选中{{phoneList}},实现在低代码页面内援用关联js文件中定义的数据。胜利实现关联后,For属性会依据设置的数据列表(phoneList),开展以后元素,即复制出3个构造统一的ListItem。 c.选中画布中的Image组件,批改右侧属性栏中的Src属性为{{$item.img}},为Image设置图片资源。其中item为phoneList数组中定义的对象,item.img即为对象中的img属性。 d.选中画布中的Text组件,批改右侧属性栏中的Content属性为{{$item.title}},为Text设置文本内容并调整Text的Width款式。 e.复制并粘贴画布中的Text组件,批改被粘贴进去的Text组件右侧属性栏中的Content属性为{{$item.subTitle}},为其设置文本内容并调整FontSize款式。 f.在关联js文件中定义switchTitle()办法,为粘贴进去的Text组件绑定Click事件,并关联js文件中的switchTitle办法。关联后,在previewer、模拟器及真机中单击该Text组件,会将文本内容从"Leap Further Ahead"切换成"Kirin 9000"。 7.应用预览器预览界面成果。关上.visual文件,并单击DevEco Studio右侧Previewer,即可实现实时的预览性能,开发者在低代码页面中的每一步操作都会在Previewer上实时显示。 那么要想成为一名鸿蒙高级开发,以上知识点是必须要把握的,除此之外,还须要把握一些鸿蒙利用开发相干的一些技术,须要咱们独特去摸索。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙根底入门学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

February 26, 2024 · 1 min · jiezi

关于harmonyos:2024薪风口学习鸿蒙开发就业钱景如何

随着华为的鸿蒙零碎从诞生之初就备受关注,对于那些对鸿蒙开发感兴趣并心愿在这一畛域寻找职业倒退的人来说,这是一个十分重要的问题。 那么,2024年学鸿蒙开发的待业前景如何呢? 一、彻底解脱“安卓套壳”!HarmonyOS团队称往年对鸿蒙生态和HarmonyOS开发者有着不凡的意义,官网示意,基于开源鸿蒙开发的HarmonyOS NEXT鸿蒙星河版将在往年秋天正式和消费者见面。 HarmonyOS团队提到,在生态搭档和开发者的共同努力下,鸿蒙原生利用的开发正全速推动,十年磨一剑,现在鸿蒙生态接入的设施已达8亿。 据理解,1月18日,华为HarmonyOS NEXT鸿蒙星河版(开发者预览版)正式凋谢申请,这是鸿蒙第二个阶段,将彻底解脱“安卓套壳”。 星河版其实就是大家常说的“纯血”鸿蒙,该零碎底座全栈自研,去除掉安卓底层代码,不反对关上安卓零碎利用,仅反对鸿蒙内核和鸿蒙零碎的利用。 二、多款APP与鸿蒙开展单干据相干音讯,目前已有超过1000家硬件厂商、300多家App服务商以及50万以上的开发者独特参加鸿蒙生态建设。 自鸿蒙的颁布以来,累计有超过73家第三方企业发表退出华为鸿蒙开发阵列。 据不齐全统计,包含华为官网颁布36家、本身披露是鸿蒙生态合作伙伴的上市公司有22家,以及15家华为现有自主生态营垒的关联合作伙伴。 三、市场需求持续增长随着华为鸿蒙零碎的一直推出与倒退,越来越多企业和组织开始器重并采纳这一零碎,因为鸿蒙零碎的独特性和先进性,对开发人员的技术要求也绝对较高,导致对鸿蒙开发人员的需要持续上升。因而鸿蒙利用开发工程师人员的需要将会持续增长。 四、鸿蒙开发者迎来黄金期鸿蒙(HarmonyOS)原生利用开发的蓬勃发展,对鸿蒙开发人才的需要一直攀升。 鸿蒙用户规模扩增、越来越多的重要利用和平台开始基于鸿蒙操作系统进行原生适配与开发,各大企业开始公布鸿蒙相干技术人才招聘,鸿蒙开发者的黄金期间正式降临。 在多家招聘平台上搜「鸿蒙工程师」,会呈现不少头部互联网企业,比方百度公布的 HarmonyOS 开发工程师的招聘中,薪资为 20-40k·16 薪,京东公布的前端架构师(鸿蒙方向)岗位,薪资待遇为 40-70k,鸿蒙架构师的薪资则开到了60-90k·16薪,而华为甚至为鸿蒙 OS 资深架构师开出了 100 万-160 万元的年薪。 鸿蒙开发的待业前景呈现出市场需求持续增长、技术要求高、就业机会多样化、薪资程度较高以及将来发展前景广大等特点。对于具备相干技能和教训的开发者来说,抉择从事鸿蒙开发畛域将是一个具备较大发展潜力的职业抉择。 为了可能让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整顿出一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙 (Harmony OS)开发学习手册》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙全套学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙根底入门学习指南》

February 25, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS低代码开发使用低代码开发服务卡片

DevEco Studio还反对应用低代码开发性能开发服务卡片,目前只反对JS语言,且compileSdkVersion必须为7或以上。 上面以创立一个新的服务卡片为例进行阐明。 1.关上一个工程,创立服务卡片,创立办法包含如下两种形式: 抉择模块(如entry模块)下的任意文件,单击菜单栏File > New > Service Widget创立服务卡片。抉择模块(如entry模块)下的任意文件,单击右键 > New > Service Widget创立服务卡片。2.在Choose a Template for Your Service Widget界面中,抉择卡片模板,单击Next。 3.在Configure Your Service Widget界面中,配置卡片的根本信息,包含: Service widget name:卡片的名称,在同一个FA中,卡片名称不能反复,且只能蕴含数字、字母和下划线。Description:卡片的形容信息。Enable Super Visual:是否抉择低代码形式开发,这里抉择关上低代码开关。Language:界面开发语言。Support dimensions:抉择卡片的规格。局部卡片反对同时设置多种规格。Ability name:抉择一个挂靠服务卡片的Page Ability,或者创立一个新的Page Ability。NOTE如果抉择的Ability是继承AceAbility时,请参考JS卡片开发领导的步骤2进行批改。Module name:卡片所属的模块。 4.单击Finish,实现卡片创立。卡片创立实现后,在工程目录中主动生成卡片的低代码目录构造 5.关上“index.visual”文件,即可进行卡片的可视化设计与开发。 为了可能让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我本人近期学习心得以及参考网上材料整顿出的一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙 (Harmony OS)开发学习手册》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙全套学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙根底入门学习指南》

February 25, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS从基础到实战高性能华为在线答题元服务

阐明:本文首发于CSDNhttps://shangjinzhu.blog.csdn.net/article/details/134467049最近看到美团、新浪、去哪儿多家互联网企业启动鸿蒙原生利用开发,这个HarmonyOS NEXT越来越引人关注。奈何以后不面向集体开发者凋谢,然而咱们能够尝试下鸿蒙新的利用状态——元服务的开发。元服务是基于HarmonyOS提供的一种面向未来的服务提供形式,有独立入口、免装置,以万能卡片等多种出现状态,可提供一个或多个便捷、轻量化服务。在本文中,我将具体介绍元服务、ArkTS 语言开发以及 DevEco Studio 开发工具的端云一体化开发和低代码开发等方面,并且带大家亲自实战元服务开发-在线答题我的项目深度体验学习! 在线答题元服务次要性能: 接入AGC认证服务,以实现用户登录,展现个人账户信息,在线答题以及积分排行等性能。用户能够在利用中进行常识练习,上传自定义题目以丰盛题库内容。利用华为云服务,实现用户答题展现问题和排名,减少用户对学习的趣味。应用云数据库存储题目,实现卡片的刷新和页面跳转等性能。我的项目运行演示视频XXX 一.元服务核心内容本文着重介绍元服务元服务轻量化、信息外显的个性,由基础知识学习到我的项目实战,逐渐深刻的带大家学习,最初应用元服务技术开发一套高性能,高可用性的在线答题元服务。 1.1 元服务HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。运行在HarmonyOS的利用分为两种状态: 传统形式的须要装置的利用(即传统概念中的HarmonyOS利用,可简称利用)。提供特定性能、免装置的利用(即元服务,原名为原子化服务)。本文则次要应用元服务状态进行介绍及其开发实战。 1.1.1元服务的出现状态鸿蒙万能卡片是元服务的次要展示模式之一(其余模式包含语音和图标等)。每个万能卡片都是一种始终可见的元服务或利用,将重要信息以卡片的模式展现在桌面上,通过轻量交互实现服务的便捷拜访。 1.1.2 元服务的特点① 免装置,更轻量化地将服务带给用户 ② 一键服务中转,将用户感兴趣的内容前置、外显 ③ 跨端转移,多终端设备间无缝流转 ④ 情景智能卡片举荐,随心定制、更懂用户 1.2 ArkTS语言ArkTS是鸿蒙生态的利用开发语言。它在放弃TypeScript(简称TS)根本语法格调的根底上,对TS的动静类型个性施加更严格的束缚,引入动态类型。同时,提供了申明式UI、状态治理等相应的能力,让开发者能够以更简洁、更天然的形式开发高性能利用。 1.2.1 ArkTS语言特点ArkTS语言通过一直的迭代降级有了许多更新和改良,一年前我第一次接触这个技术,发现很多中央都不欠缺,相比其余语言(TS,JS)相比有很多有余。然而通过一年的迭代更新,其性能当初曾经非常欠缺且弱小。让开发者可能更高效地编写和开发应用程序。ArkTS提供了简洁天然的申明式语法、组件化机制、数据-UI主动关联等能力,实现了贴近自然语言,书写效率更高的编程形式,为开发者带来易学、易懂、极简开发的优质体验。在应用ArkTS语言开发利用时,状态治理是一个重要的概念。状态治理是指治理利用中的各种状态,包含组件状态、全局状态等。状态治理能够帮忙开发者更好地组织和治理利用中的数据,使得利用更加稳固和高效。ArkTS提供了多维度的状态管理机制,能够在ArkUI开发框架中应用。和UI相关联的数据,不仅能够在组件内应用,还能够在不同组件层级间传递,比方父子组件之间、爷孙组件之间,也能够是利用全局范畴内的传递。 1.2.2 能力扩大ArkTS在TS的根底上次要扩大了如下能力: 根本语法:ArkTS定义了申明式UI形容、自定义组件和动静扩大UI元素的能力,再配合ArkUI开发框架中的零碎组件及其相干的事件办法、属性办法等独特形成了UI开发的主体。状态治理:ArkTS提供了多维度的状态管理机制。在UI开发框架中,与UI相关联的数据能够在组件内应用,也能够在不同组件层级间传递,比方父子组件之间、爷孙组件之间,还能够在利用全局范畴内传递或跨设施传递。另外,从数据的传递模式来看,可分为只读的单向传递和可变更的双向传递。开发者能够灵便的利用这些能力来实现数据和UI的联动。渲染管制:ArkTS提供了渲染管制的能力。条件渲染可依据利用的不同状态,渲染对应状态下的UI内容。循环渲染可从数据源中迭代获取数据,并在每次迭代过程中创立相应的组件。数据懒加载从数据源中按需迭代数据,并在每次迭代过程中创立相应的组件。 1.3 DevEco Studio开发工具DevEco Studio 3.1配套反对HarmonyOS 3.1版本及以上的利用及服务开发,提供了代码智能编辑、低代码开发、双向预览等性能,以及轻量构建工具DevEco Hvigor 、本地模拟器,继续晋升利用及服务开发效率。官网下载地址:HUAWEI DevEco Studio和SDK下载和降级 | HarmonyOS开发者 1.3.1低代码开发HarmonyOS低代码,有丰盛的UI界面编辑性能,例如基于图形化的自在拖拽、数据的参数化配置等,通过可视化界面开发方式疾速构建布局,可无效升高用户的工夫老本和晋升用户构建UI界面的效率。咱们来一起体验一下:只需在创立新我的项目时关上低代码按钮(Enable Super Visual)即可:创立我的项目之后,咱们只需拖动组件到可视化区域即可,咱们须要理解上面的工作区性能如下: UI Control:UI控件栏,能够将相应的组件选中并拖动到画布(Canvas)中,实现控件的增加。Component Tree:组件树,在低代码开发界面中,开发者能够直观地看到组件的层级构造、摘要信息以及谬误提醒。开发者能够通过选中组件树中的组件(画布中对应的组件被同步选中),实现画布内组件的疾速定位;单击组件后的或图标,能够暗藏/显示相应的组件。Panel:性能面板,包含罕用的画布放大放大、撤销、显示/暗藏组件虚构边框、设施切换、明暗模式切换、Media query切换、可视化布局界面一键转换为hml和css文件等。Canvas:画布,开发者可在此区域对组件进行拖拽、拉伸等可视化操作,构建UI界面布局成果。Attributes & Styles:属性款式栏,选中画布中的相应组件后,在右侧属性款式栏能够对该组件的属性款式进行配置。咱们能够利用可视化来做各种各样的前端页面,这大大的升高了咱们的工作量,上面则是一个可视化拖动的成果页面,具体的内容咱们则能够到低代码开发文档中进行深度学习。 1.3.2端云一体化开发端云一体化开发是DevEco Studio的一个新个性,它容许开发者在本地和云端之间无缝地开发和调试应用程序。通过端云一体化开发,开发者能够更加高效地应用云计算资源,同时也能够在本地疾速测试和调试代码。让咱们一起体验一下端云一体化开发的魅力。端云一体化开发根本流程如下:创立云函数->调试云函数->云函数与应用程序的通信1.创立云函数:在DevEco Studio中,开发者能够轻松地创立和治理云函数。云函数是一段运行在云端的代码,它能够与应用程序进行通信,执行一些须要在云端实现的工作。通过创立云函数,开发者能够利用云计算的弱小能力,同时也能够在本地疾速测试和调试代码。2.调试云函数:在DevEco Studio中,开发者能够应用调试器来调试云函数。调试器容许开发者在本地模仿云函数的运行环境,并在代码中退出断点来进行调试。这使得开发者能够更加轻松地发现和解决问题,进步了开发效率。3.云函数与应用程序的通信:在端云一体化开发中,云函数与应用程序之间的通信是十分重要的。DevEco Studio提供了一些工具来帮忙开发者实现这种通信。例如,开发者能够应用HTTP或WebSocket协定来与云函数进行通信,也能够应用华为提供的云服务SDK来进行更高级的通信操作。这些工具使得开发者能够更加轻松地实现云函数与应用程序之间的交互,进步了开发效率。端云一体化开发相比大家在学习生涯中都有据说,上面就是 HarmonyOS端云一体化开发相比传统开发的劣势,大家比照观看就能够发现其劣势微小。集成端云一体化组件后,进行简略配置即可向利用用户提供登录、领取等多种性能。 二.我的项目云端配置2.1 AppGallery Connect服务创立AppGallery Connect(以下简称AGC)是华为利用市场推出的利用一站式服务平台,致力于为开发者提供利用创意、开发、散发、经营、剖析全生命周期服务,构建全场景智慧化的利用生态。1.咱们须要进入AppGallery Connect服务中心,创立新的我的项目,并且填入项目名称。2.进入如下页面,并在Serverless里,找到手机号码,将其设置为启用状态。3.对于SDK配置,因为咱们是云端一体化我的项目,不须要咱们额定配置SDK,在创立我的项目时会主动配置。4.到我的利用,创立对应的利用,如下:须要留神:软件包类型抉择HarmonyOS利用,是否元服务抉择是。5.到Serverless里开明创立云函数和云数据库,如下图。这样提前开明的益处是后续无需更新开明后的配置文件,对老手极为敌对。 三.我的项目环境本地搭建提前做完云端配置后,对于我的项目环境本地搭建较为容易。 3.1 创立端云一体化元服务项目1.只需按上面抉择对应的我的项目模板进行创立。2.创立项目名称为:arkTSDemo(这是我的案例名称,依照华为包命名标准自行起名即可)。留神:须要和上文中的云端创立包名雷同,否则会呈现上面检测不到的状况,只须要查看包名是否匹配即可解决。填写对应的参数要求,并且增加到刚刚创立的我的项目中去。3.实现下面该有的配置之后,咱们再返回到 DevEco Studio,就能够看到咱们刚刚创立的。点击finsh之后咱们创立我的项目,急躁期待配置和主动下载所需资源包即可。4.咱们的设置SDK也是无需手动配置的,咱们的云端一体化创立会帮咱们主动的创立好所需的文件和配置,为咱们节俭了大量的步骤。5.创立我的项目,期待依赖配置实现即可开始咱们本次的我的项目实战了。 四.元服务实战-在线答题4.1 我的项目构造咱们我的项目构造如下图所示:1.entryability:主利用的Ability2.Entnyformability:卡片的Ability3.Models:从云数据库导出的数据类型4.Pages:页面代码文件夹5.Widget->Pages:卡片页面文件夹6.rawfile下的俩个文件:①agconnect-services.json:用于连贯severless的配置信息②schema.json:云端配置信息 4.2 我的项目开发计划我的项目接入AGC认证服务用于登录,蕴含展现集体账号信息的页面、在线答题页面、积分排行页面,用户能够在利用上进行常识练习,随时随地的坚固已学的常识,反对用户本人上传题目,不断完善题库丰盛度,构建多元化题库。利用华为云服务提供的高性能,高可用性云服务,能够轻松实现,用户答题展现问题和进度,依据用户最高问题进行排行,显示用户的排名,减少用户对学习的趣味,能够应用元服务卡片展现用户的成绩排名或者问题和进度均可。1.构建柔美页面2.应用云数据库存储题目,通过云数据库接口进行查问。3.桌面卡片的刷新事件依赖于postCardAction接口的message事件。4.点击跳转利用应用postCardAction接口的router事件。5.FormAbility和利用页面点击后刷新卡片的性能应用formProvider.updateForm接口。 ...

February 25, 2024 · 4 min · jiezi

关于harmonyos:HarmonyOS使用低代码开发应用或服务

应用低代码开发利用或服务有以下两种开发方式: 创立一个反对低代码开发的新工程,开发利用或服务的UI界面。在已有工程中,创立Visual文件来开发利用或服务的UI界面。ArkTS工程和JS工程应用低代码的步骤雷同,接下来以JS工程为例别离解说这两种开发方式。 创立新工程反对低代码开发在工程模板中,提供了低代码开发的工程模板,您能够间接抉择一个反对低代码开发的工程模板来开发利用或服务的UI界面。 NOTE该性能在DevEco Studio 3.0 Beta2及更高版本中反对,且compileSdkVersion必须为7或以上。ArkTS低代码要求compileSdkVersion必须为8或以上。接下来咱们以创立一个Empty Ability工程模板为示例进行阐明。 1.关上DevEco Studio,创立一个新的工程,抉择Empty Ability模板。 2.关上Enable Super Visual,示意应用低代码开发性能开发利用/服务。单击Finish期待工程同步实现。 同步实现后,工程目录中主动生成低代码目录构造。 pages > index > index.js:低代码页面的逻辑形容文件,定义了页面里所用到的所有的逻辑关系,比方数据、事件等,详情请参考JS语法参考。如果创立了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的js文件。 NOTE应用低代码页面开发时,其关联js文件的同级目录中不能蕴含hml和css页面,例如上图中的js > MainAbility > pages > index目录下不能蕴含hml与css文件,可能呈现报错。pages > index >index.visual:visual文件存储低代码页面的数据模型,双击该文件即可关上低代码页面,进行可视化开发设计。如果创立了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的visual文件。3.关上“index.visual”文件,即可进行页面的可视化布局设计与开发。 NOTE应用低代码开发界面过程中,如果界面须要应用到其它暂不反对可视化布局的控件时,能够在低代码界面开发实现后,单击按钮,将低代码界面转换为hml和css代码。留神,代码转换操作会删除visual文件及其父目录,且为不可逆过程,代码转换后不能通过hml/css文件反向生成visual文件。多设施开发的场景,能够单击界面画布右上角设施/模式切换按钮,进行设施切换或模式切换。其中,单击按钮,切换到Media Query模式,能够针对不同设施和屏幕状态设置专属的款式和属性值,如下图,以后模式仅针对P40竖屏状态无效 在已有工程中增加Visual反对低代码开发在已有的HarmonyOS工程中,能够通过创立Visual文件的形式,应用低代码开发利用或服务的UI界面,要求compileSdkVersion必须为7或以上。ArkTS低代码要求compileSdkVersion必须为8或以上。 1.在关上的工程中,选中模块的pages文件夹,单击鼠标右键,抉择New > Visual > Page。 2.在弹出的对话框中,输出Visual name,单击Finish。创立Visual后,会在工程中主动生成低代码的目录构造,如下图所示: pages > page > page.js:低代码页面的逻辑形容文件,定义了页面里所用到的所有的逻辑关系,比方数据、事件等,详情请参考JS语法参考。如果创立了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的js文件。 NOTE应用低代码页面开发时,其关联js文件的同级目录中不能蕴含hml和css页面,例如上图中的js > MainAbility > pages > page目录下不能蕴含hml与css文件,否则可能报错。pages > page >page.visual:visual文件存储低代码页面的数据模型,双击该文件即可关上低代码页面,进行可视化开发设计。如果创立了多个低代码页面,则pages目录下会生成多个页面文件夹及对应的visual文件。NOTEDevEco Studio预置了JS Visual模板,该模板对应的SDK版本为API 7。因而,在创立JS Visual文件时,如果模块的compileSdkVersion低于7,则会对新建的JS Visual文件对应的SDK版本进行降级解决,使其与模块对应的SDK版本保持一致。不倡议通过文本编辑的形式更改visual文件,否则,可能导致不能失常应用低代码性能。3.关上“page.visual”文件,即可进行页面的可视化布局设计与开发。 NOTE应用低代码开发界面过程中,如果界面须要应用到其它暂不反对可视化布局的控件时,能够在低代码界面开发实现后,单击按钮,将低代码界面转换为hml和css代码。留神,代码转换操作会删除visual文件及其父目录,且为不可逆过程,代码转换后不能通过hml/css文件反向生成visual文件。多设施开发的场景,能够单击界面画布右上角设施/模式切换按钮,进行设施切换或模式切换。其中,单击按钮,切换到media query模式,能够为组件设置不同的款式和属性。以后media query模式仅针对不同设施类型和不同屏幕状态(横屏\竖屏)无效。为了可能让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我本人近期学习心得以及参考网上材料整顿出的一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙 (Harmony OS)开发学习手册》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) ...

February 23, 2024 · 1 min · jiezi

关于harmonyos:成为自己二鸿蒙-Harmony-系统篇

前言写完了《工具篇》,咱们再来看看 HarmonyOS 的系统结构,为什么不先说编码而抉择零碎先进行介绍?俗话说,编程语言只是一个工具,工具多种多样,而工具作用的对象才是最须要先理解的,这样能够做到对症下药(先找钉子,再用趁手锤子),在编码学习的时候也能够互相映照,起得事倍功半的成果。所以思路上,是先介绍《零碎篇》,再开展《编码篇》。 HarmonyOS 从刚开始推出的时候,就随同各种不同的声音,能够说是褒贬不一,有说是 「Android 套壳,金玉其外;败絮其中」,也有说是「冲破封闭,国产之光」,而乏味的是,消费者市场上的华为手机也经验了极其类似的各种探讨。咱们从后果上看,往年(2023年)华为推出的 Mate60 系列突破了各种质疑,造就了家喻户晓的「遥遥领先」。很难说,搭载在「遥遥领先」手机上的 HarmonyOS 也再一次走到了「聚光灯」下,但这次和之前不一样的是,再少了很多质疑声的同时,也引起了各大软件厂商的留神,各家都在紧锣密鼓地开发自家 APP 的鸿蒙版本,甚至招聘鸿蒙开发岗位需要也在互联网寒冬之下显得自成一家。 说了这么多技术不强相干的话,也只是想感叹句,「轻舟已过万重山」。那咱们接下来就具体看一下这个充斥戏剧性色调的「国产」开发零碎到底有什么机密。 历史2019年8月9日,华为在中国东莞召开开发者大会,正式公布了鸿蒙零碎。鸿蒙零碎最后被设计为一个面向物联网(IoT)设施的操作系统,但华为示意鸿蒙零碎也能够用于智能手机、平板电脑和其余类型的设施。 2020年9月,华为公布了鸿蒙零碎 2.0 版本,并发表将在将来的智能手机上应用鸿蒙零碎。 2021年6月,华为推出了首批搭载鸿蒙零碎的智能手机。 2022年7月,HarmonyOS 3 正式公布。 2023年8月,HarmonyOS 4 正式公布,同时公开 HarmonyOS NEXT 开发预览版,并声称在 NEXT 版本上将作为齐全独立于 Android 的操作系统。 架构在介绍一个零碎之前,首先祭出的必定是零碎架构图,这里也不例外,从面到点去了解整个零碎的设计思维和用意是最疾速精确理解零碎的一个重要办法。 咱们晓得,鸿蒙零碎不仅仅针对的是挪动端手机平台的零碎,而是基于「万物互联」概念,能运行在 PC、平板、车机、IoT 各类设施上的零碎。所以该零碎的设计,首先保障的就是零碎的兼容性和模块的灵便可扩展性。 ](/img/bVdbwvT) 如上图所示,HarmonyOS 分为四层,从下向上顺次是:内核层、零碎服务层、框架层和应用层。零碎性能依照「零碎>子系统>性能/模块」逐级开展,在多端部署场景下,反对依据理论需要裁剪某些非必要的子系统或性能/模块,合乎高内聚、低耦合的特点。 而鸿蒙零碎是如何实现「万物互联」的“超级终端”零碎呢? 咱们能够看到,软总线实现了软硬协同,优先级调度的性能,数据上通过分布式技术实现了文件、数据库和沙箱的数据共享,作为可原子化的利用,实现了可流转/迁徙的特点,一次开发多端部署。 分布式软总线:实现近场设施间对立的分布式通信能力,提供不辨别链路的设施发现和传输接口,具备疾速发现并连贯设施,高效散发工作和传输数据。内核层HarmonyOS 的内核子系统采纳多内核设计,反对针对不同资源受限设施,选用适宜的 OS 内核。而驱动子系统(HDF,硬件驱动框架)是 HarmonyOS 硬件生态凋谢的根底,提供对立外设拜访能力和驱动开发治理框架。鸿蒙反对三类零碎: 迷你零碎:运行在一些诸如连贯模块、传感器、可穿戴设施,运存介于 128KB 左右的处理器上小型零碎:运行在路由器、网络摄像头等运存介于 1MB 左右的处理器上规范零碎:运行在增强型交互、3D GPU、丰盛动画和多样化组件等 128M 及以上的处理器上零碎服务层是 HarmonyOS 的外围能力汇合,包含实用于各类设施的根底能力以及面向特定设施的专有能力,涵盖四个子系统集,依据不同设施状态的部署环境,根底软件/加强软件/硬件服务子系统集外部能够按子系统粒度裁剪,子系统外部还可按性能粒度裁剪。不同维度的裁剪,保障了鸿蒙架构上的设施灵活性,而分布式的引入,则让整体零碎服务有了互通的可能。这里对一些了解上可能会有生疏的概念做些解释: DFX 子系统(Design for X)DFX 是为了晋升软件品质设计的工具集,蕴含 DFR(Design for Reliability,可靠性)、 DFT(Design for Testability,可测试性)、可制作性(Design for Manufacturability)、可服务性(Design for Serviceability)、生命周期设计(Design for LifeCycle)等。X示意产品的某个个性或者产品生命周期的某个阶段,目前实现的性能有: HiLog:日志零碎,提供给零碎框架、服务以及利用打印日志,记录用户操作、零碎运行状态的性能HiSysEvent:零碎事件记录接口,定义了 HiSysEvent 埋点接口供给用框架、零碎服务应用,用于向 HiView 上报零碎工夫信息HiView:由框架和插件平台组成,包含插件配置,插件治理FaultLoggered:利用故障订阅和收集,C/C++ 运行时 Crash 长期日志的生成和治理模块HiAppEvent:JS 利用事件记录接口,即打点接口,用于帮忙利用记录在运行过程中产生的故障信息、统计信息、平安信息、用户行为信息,以撑持开发者剖析利用的运行状况。 DFX 对于开发者而言,更像是一个简单的事件和日志零碎,该零碎贯通了整个鸿蒙零碎的周期和模块,不论是设施商还是开发者都能够通过 DFX 精确疾速地定位到问题,同时 DFX 还提供了剖析和诊断服务。 对于日志分类,日志能够按类型(Type)、畛域(Domain)、标签(Tag)等进行分类;对于流量管控,有具备流控机制无效地辨认滥打日志的畛域;对于隐衷管控,采集的日志是最小化,仅为提供必须服务时收集设施型号、操作系统、惟一设施标识符、登录 IP 地址、软件版本号、接入网络形式和类型、操作日志等信息。DFX 无效保障了在设施呈现利用解体、利用卡死、分布式故障、死机、主动重启、不开机等问题上能剖析定位到具体起因并解决问题。 MSDP & DV 子系统MSDP & DV(Mobile Sensing Development Platform,挪动感知平台;Device Virtualization,设施虚拟化),能够简略了解为传感器和虚拟化能力,MSDP 提供分布式交融感知能力,汇总交融来自多个设施的多种感知源,从而准确感知用户的空间、挪动、手势、静止衰弱等多种状态,实现不同设施的能力和资源交融。 框架层蕴含 UI 框架(包含实用于 Java 的 UI 框架和实用于 JS 的 UI 框架)、Ability 框架、用户程序框架以及各种软硬件服务对外开放的多语言框架 API,为 HarmonyOS 利用开发提供了 Java/C/C++/JS/TS 等多语言的用户程序框架和 Ability 框架。依据零碎的组件化裁剪水平,HarmonyOS 设施反对的 API 也会有所不同。 ArkCompiler 方舟编译器这里再对外围编码工具 ArkCompiler 做下介绍,ArkCompiler 是华为自研的对立编程平台,蕴含编译器、工具链、运行时等关键部件,反对高级语言在多种芯片平台编译和运行,并撑持利用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设施上的需要。ArkCompiler 利用 ArkTS 的动态类型信息,进行类型推导并生成对象形容和内敛缓存,减速运行时对字节码的解释执行,AOT(Ahead-of-Time)Compiler 利用动态类型信息间接将字节码编译生成优化机器码,让利用启动即可运行高性能代码。 绝对于动静类型语言的传统编译模式,在编译期间只进行打包源码,并且是在装置之后的运行时执行源码解析、编译执行字节码、获取 Profile 信息、编译优化执行机器码,而「号称」首个动静 AOT 类型语言编译模式的方舟编译器,则是将解析源码、编译字节码、获取 Profile 信息、编译优化机器码并且打包成字节码和优化机器码放在了编译阶段,在利用装置后,本地间接执行优化后的机器码和字节码,这样做的益处就是缩小设施上的编译工夫,间接做到「运行即可用」。 LiteActor 轻量化并发,提供了 Worker API 反对并发编程,在运行时实例内存隔离的根底上,ArkCompiler 通过共享运行实例中的不可变或者不易变对象、内建代码块、办法字节码等技术手段,优化了并发运行实例的启动性能和内存开销。 Actor 模型,一个 actor 定义为一个计算单元,每个 actor 蕴含了存储、通信、计算等能力,在分布式系统中,通常蕴含了十分多的服务器集群,每一台服务器又蕴含了大量 actor 实例,他们独特形成了弱小的并行计算能力。Actor 的核心思想是独立保护隔离状态,并基于消息传递实现异步通信。咱们晓得 JS 是一门单线程语言,在设计之初没有思考多线程运行的反对和优化,所以对于 Actor 模型而言,每一个并发实例都会创立一个残缺的引擎实例来反对运行,这样做的劣势在于让开发者能够不关注共享状态和锁,容易保护和测试,并且非常容易将并发实例迁徙成分布式服务,但也造成了启动慢、内存开销大的问题。而 ArkCompiler 尽管本质上还是 Actor 模型,但通过共享过程内各个并发实例间的不可变对象,将一些基础设施分层和轻量化,并且重用来加重并发启动工夫和内存累赘。 在源码平安方面,区别于 Android Java/Kotlin 代码的混同,方舟编译器会把 ArkTS/TS/JS 编译为方舟字节码,并且应用多种混同技术提供更高强度的混同和爱护,使 HarmonyOS 利用包中装在的是多重混同后的字节码,无效提测利用代码平安的强度。 应用层反对基于框架层实现业务逻辑的原子化开发,构建以 FA/PA 为根底组成单元的利用(包含零碎和三方利用),FA/PA 能够按需下载、加载和运行,基于 FA/PA 实现的利用生态,能够实现三方服务跨设施智能散发,提供统一、高效的用户体验。在《工具篇》的时候,咱们提到 FA 和 PA 的区别在于有没有 UI 界面,前面 FA 又被 Stage 模型所取代,但在设计构造上不会有太多变动。 从下图咱们能够看到,利用是怎么灵便动静部署到各个不同设施中的。华为在除了传统利用市场之外,还提供给开发者和企业一个散发平台,在该散发平台上,用户能够独立配置开发的利用能够通过二维码、碰一碰(NFC)、搜寻、语音、感知等将一些原子化的服务利用部署到不同设施当中。 以下是对鸿蒙系统对原子化开发的一个例子,简略而言,通过散发平台,开发者能够将一个利用中的残缺性能(PA1、PA2、PA3)「有选择地」散发到不同鸿蒙设施上。这里的有抉择,代表依据设施个性抉择特定的原子能力,比方图中智慧屏只用到了 PA1 的能力,而手机用到了 PA1、PA2、PA3 的残缺能力,甚至能够设想下如果有一个搭载了鸿蒙零碎的摄像头 IoT 设施,只须要用到 PA1 的视频采集能力,而用不到 FA 的界面能力。 总结从整个鸿蒙零碎的设计而言,曾经不单单是一个手机零碎那么简略,而是一个「生态」,通过分布式技术实现多端部署和数据互联的个性。同时可移植内核能力给鸿蒙笼罩诸如车机、穿戴设施、手机、电视、智能家居等提供了保障,置信鸿蒙前面也会一直去拓宽它的边界,达到所谓的「万物互联」。 作者:ES2049 / 黎明 文章可随便转载,但请保留此 原文链接。 十分欢送有激情的你退出 ES2049 Studio,简历请发送至 caijun.hcj@alibaba-inc.com 。

February 23, 2024 · 1 min · jiezi

关于harmonyos:鸿蒙NEXT出现有前途吗是否会和安卓IOS开发历程一样

只有有手机操作系统这玩意存在,肯定是须要原生开发人员的,但随着独立操作系统越来越多的话,混合App开发可能是个“万能解决方案”。 2024年,在中国,被各大媒体和开发者称为“鸿蒙元年”。 在2023年底就有业内人士走漏,华为2024年将推出不兼容安卓的鸿蒙版本,将来IOS、鸿蒙、安卓将成为三个各自独立的零碎。 果不其然,执行力超强的华为,于2024年1月18日的开发者(HDC)大会上,就官宣了“纯血鸿蒙”操作系统行将于2024年3季度正式投产。与此同时,支付宝、京东、小红书、微博、高德地图、中国移动等在内的超百个头部利用都启动了鸿蒙原生利用开发,鸿蒙开发者日新增注册量已过万,同时泛滥985、211高校接连开设HarmonyOS相干课程。 鸿蒙生态倒退已势不可挡。随着科技突飞猛进的倒退,物联网、智能设施和5G技术的广泛应用,国内自主研发的鸿蒙操作系统(HarmonyOS)正以前所未有的态势锋芒毕露,为信息技术畛域的从业者,特地是软件开发者开启了新的职业倒退时机。聚焦鸿蒙零碎开发,咱们能够看到两个显明的特点:易待业与前景广大。 易待业鸿蒙零碎作为华为倾力打造的全场景分布式操作系统,目前已利用于智能手机、智慧屏、穿戴设施、智能汽车等畛域,并失去了泛滥国内外合作伙伴的认可与反对。 随着鸿蒙生态的继续壮大,已有超过200家头部企业正减速鸿蒙原生利用开发,包含支付宝、美团、京东等,笼罩便捷生存、出行文旅、金融便当等畛域,鸿蒙原生利用幅员已根本成形。 市场对于相熟鸿蒙零碎开发的业余人才需求激增。无论是在华为及其产业链上下游企业,还是泛滥涉足智能硬件、物联网利用开发的初创公司,均迫切需要可能熟练掌握鸿蒙零碎开发技术的软件工程师。即便是对Android或其它操作系统有肯定根底的开发者,通过学习鸿蒙开发技术,也能疾速适应市场变动,从而取得更多的就业机会。 前景广鸿蒙零碎凭借其分布式架构、跨设施协同和低时延高牢靠等个性,不仅在国内市场展现出弱小的生命力,更在寰球范畴内引起宽泛关注。 随着鸿蒙零碎在更多畛域的广泛应用,投身鸿蒙开发的从业者将有机会参加到塑造将来智能生存的巨大过程中,如智能交通、智慧城市、智能家居等畛域,其发展潜力和职业前景不可限量。 尤其在以后政策鼎力推动科技翻新和自主可控的大背景下,鸿蒙零碎的研发和推广失去了强有力的反对,使得鸿蒙开发者不仅可能享受到丰盛的职业倒退资源,还有机会参加到国家级重大项目中,实现集体价值与国家利益的高度符合。 总的来说,鸿蒙零碎开发以其易待业和广大前景的特点,为开发者提供了新的职业倒退时机。无论是寻求职业转型的资深程序员,还是刚踏入IT行业的新人,抉择鸿蒙零碎开发,无疑是紧抓时代脉搏,实现职业飞跃的现实抉择。 如何学习鸿蒙如果你还没有把握鸿蒙,当初想要在最短的工夫里吃透它,这里给大家筹备了一份鸿蒙零碎学习路线。 为了可能让大家跟上互联网时代的技术迭代,跟大家分享一下我本人近期学习心得以及参考网上材料整顿出的一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙 (Harmony OS)开发学习手册》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙根底入门学习指南》

February 23, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS代码Code-Linter检查

Code Linter代码查看Code-Linter针对ArkTS/TS代码进行最佳实际、编程标准方面的查看,目前还会查看ArkTS语法规定。开发者可依据扫描后果中告警提醒手工修复代码缺点,或者执行一键式主动修复,在代码开发阶段,确保代码品质。 查看办法:在已关上的代码编辑器窗口单击右键点击Code Linter,或在工程治理窗口中鼠标选中单个或多个工程文件/目录,右键抉择Code Linter执行代码查看。 配置代码查看规定在工程根目录下创立code-linter.json5配置文件,可对于代码查看的范畴及对应失效的查看规定进行配置,其中files和ignore配置项独特确定了代码查看范畴,ruleSet和rules配置项独特确定了失效的规定范畴。具体配置项性能如下: files:配置待查看的文件名单,如未指定目录,规定实用于所有文件,例如:[“/.ets”,”/.js”,”*/.ts”]; ignore:配置无需查看的文件目录,其指定的目录或文件需应用相对路径格局,绝对于code-linter.json5所在工程根目录,例如:build/*/; ruleSet:配置查看应用的规定集,规定集反对一次导入多条规定;目前仅反对all和recommended两种规定集,规定详情请参见代码查看规定表。 rules:能够基于ruleSet配置的规定集,新增额定规定项,或批改ruleSet中规定默认配置,例如:将规定集中某条规定告警级别由warn改为error。 overrides:针对工程根目录下局部特定目录或文件,可配置定制化查看的规定。 { "files": //用于示意配置实用的文件范畴的 glob 模式数组。在没有指定的状况下,利用默认配置 [ "**/*.ets", //字符串类型 "**/*.js", "**/*.ts" ], "ignore": //一个示意配置对象不应实用的文件的 glob 模式数组。如果没有指定,配置对象将实用于所有由 files 匹配的文件 [ "build/**/*", //字符串类型 "node_modules/**/*" ], "ruleSet": //设置查看待利用的规定集, 以后仅反对IDE内置规定集all、recommended [ "plugin:@typescript-eslint/recommended" //快捷批量引入的规定集, 枚举类型:plugin:@typescript-eslint/all, plugin:@typescript-eslint/recommended ], "rules": //能够对ruleSet配置的规定集中特定的某些规定进行批改、去使能, 或者新增规定集以外的规定;ruleSet和rules独特确定了代码查看所利用的规定 { "@typescript-eslint/no-explicit-any": // ruleId前面跟数组时, 第一个元素为告警级别, 前面的对象元素为规定特定开关配置 [ "error", //告警级别: 枚举类型, 反对配置为error, warn, off { "ignoreRestArgs": true //规定特定的开关配置, 为可选项, 不同规定其上层的配置项不同 } ], "@typescript-eslint/explicit-function-return-type": 2, // ruleId前面跟独自一个数字时, 示意仅设置告警级别, 枚举值为: 2(error), 1(warn), 0(off) "@typescript-eslint/no-unsafe-return": "warn" // ruleId前面跟独自一个字符串时, 示意仅设置告警级别, 枚举值为: error, warn, off }, "overrides": //针对特定的目录或文件采纳定制化的规定配置 [ { "files": //指定须要定制化配置规定的文件或目录 [ "entry/**/*.ts" //字符串类型 ], "excluded": [ "entry/**/*.test.js" //指定须要排除的目录或文件, 被排除的目录或文件不会被查看; 字符串类型 ], "rules": //反对对overrides外公共配置的规定进行批改、去使能, 或者新增公共配置以外的规定; 该配置将笼罩公共配置 { "@typescript-eslint/explicit-function-return-type": // ruleId: 枚举类型 [ "warn", //告警级别: 枚举类型, 反对配置为error, warn, off; 笼罩公共配置, explicit-function-return-type告警级别为warn { allowExpressions: true //规定特定的开关配置, 为可选项, 不同规定其上层的配置项不同 } ], "@typescript-eslint/no-unsafe-return": "off" // 笼罩公共配置, 不查看no-unsafe-return规定 } } ]}查看/解决代码查看后果扫描实现后,在底部工具面板查看查看后果。双击某条告警后果,能够跳转到对应代码缺点地位;选中告警后果时,能够在右侧Defect Description窗口查看告警对应的规定具体阐明,其中蕴含正向和反向示例,并依据其中的倡议批改代码。关上修复模式开关,查看可修复的代码规定,点击代码修复图标,能够一键式批量修复告警,并刷新查看后果。 ...

February 23, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS使用预览器查看应用服务效果

DevEco Studio为开发者提供了UI界面预览性能,能够查看利用/服务的UI界面成果,不便开发者随时调整界面UI布局。预览器反对布局代码的实时预览,只须要将开发的源代码进行保留,就能够通过预览器实时查看利用/服务运行成果,不便开发者随时调整代码。 阐明因为操作系统和真机设备的差别,在预览界面中可能呈现字体、色彩等与真机设备运行的成果存在差别,预览成果仅作为利用/服务开发过程中的参考,理论最终成果请以真机设备运行成果为准。为了更好的应用体验,倡议先将DevEco Studio降级至最新版本,而后检测并更新SDK至最新版本。 查看ArkTS和JS利用/服务预览成果预览器反对JS和ArkTS利用/服务“实时预览”和“动静预览”。 阐明预览Phone、Tablet、TV和Wearable设施的JS/ArkTS工程,预览器性能依赖于电脑显卡的OpenGL版本,OpenGL版本要求为3.2及以上。richtext、web、video、XComponent组件不反对预览。不反对调用C++库的预览。har在被利用和元服务应用时真机成果有区别,真机上实际效果利用不显示menubar,元服务显示menubar,但预览器都以不显示menubar为准。若开发har模块时,请留神被元服务应用时预览器成果与真机成果的不同。实时预览:在开发界面UI代码过程中,如果增加或删除了UI组件,您只需Ctrl+S进行保留,而后预览器就会立刻刷新预览后果。如果批改了组件的属性,则预览器会实时(亚秒级)刷新预览后果,达到极速预览的成果(以后版本极速预览仅反对ArkTS组件。API 8工程的极速预览仅在非数据绑定场景失效,如波及数据绑定,仍须要在文件保留后才能够预览;API 9工程的极速预览反对局部数据绑定场景,如@State变量)。实时预览默认开启,如果不须要实时预览,请单击预览器右上角按钮,敞开实时预览性能。 阐明 开发者批改resources/base/profile目录下的配置文件(如main_page.json),不反对触发实时预览,开发者须要手动刷新。 动静预览:在预览器界面,能够在预览器中操作利用/服务的界面交互动作,如单击、跳转、滑动等,与利用/服务运行在真机设备上的界面交互体验统一。 在应用预览器前,请依据如下项查看环境信息: 确保File > Settings > SDK >HarmonyOS/OpenHarmony中,已下载Previewer资源。如果已下载Previewer,但存在新版本的状况,倡议降级到最新版本,详情请参考下载HarmonyOSSDK。倡议将File > Settings > SDK > HarmonyOS/OpenHarmony中的SDK更新至最新版本。以ArkTS为例,应用预览器的办法如下:1.创立或关上一个ArkTS利用/服务工程。本示例以关上一个本地ArkTS Demo工程为例。2.在工程目录下,关上任意一个.ets文件(JS工程请关上.hml/.css/.js页面)。3.能够通过如下任意一种形式关上预览器开关,显示成果如下图所示: 通过菜单栏,单击View>Tool Windows>Previewer关上预览器。在编辑窗口右上角的侧边工具栏,单击Previewer,关上预览器。 查看ArkUI预览成果ArkUI预览反对页面预览与组件预览,下图中左侧图标为页面预览,右侧图标为组件预览。 页面预览ArkTS利用/服务反对页面预览,要求compileSdkVersion为7或以上。页面预览通过在工程的ets文件头部增加注解@Entry实现。 @Entry的应用参考如下示例: @Entry@Componentstruct Index { @State message: string = 'Hello World' build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) } .width('100%') } .height('100%') }}组件预览ArkTS利用/服务反对组件预览,要求compileSdkVersion为8或以上。组件预览反对实时预览,不反对动态图和动静预览。组件预览通过在组件前增加注解@Preview实现,在单个源文件中,最多能够应用10个@Preview装璜自定义组件。 @Preview的应用参考如下示例 @Preview({ title: 'FoodImage'})@Componentstruct FoodImageDisplayPreview { build() { Flex() { FoodImageDisplay({ foodItem: getDefaultFoodData() }) } }}以上示例的组件预览成果如下图所示:组件预览默认的预览设施为Phone,若您想在不同的设施,或者不同的屏幕形态,或者不同设施语言等状况下的组件预览成果,能够通过设置@Preview的参数,指定预览设施的相干属性。若不设置@Preview的参数,默认的设施属性如下所示: ...

February 22, 2024 · 2 min · jiezi

关于harmonyos:智胜未来薪-时代IT技术人风口攻略

文章目录1.鸿蒙生态倒退科普2.焦虑迷茫之下 现实要落到实处3.校园大力 鸿蒙倒退不可挡4.企业布局 鸿蒙利用布局动5.智胜将来 技术人风口降临鸿蒙曾经成为行业的焦点,将来的发展潜力有限。如余承东所说的那样,鸿蒙千帆起,轻舟万重山,鸿蒙的将来充斥了有限的可能性! 鸿蒙生态倒退科普鸿蒙零碎(HarmonyOS)是华为公司自主研发的一款凋谢源代码的操作系统。该零碎于2019年公布,并在2021年开始利用在华为的智能手机中。 鸿蒙零碎是一种全场景分布式操作系统,它采纳了微内核设计,能够适应各种设施和场景,比方手机、平板、电视、智能家居等等。这种分布式设计能够使开发者编写一次代码,就能在不同的设施上运行。 鸿蒙零碎的指标是突破各种设施之间的操作限度,实现更晦涩的协同体验。它还有很多长处,比方平安稳固、性能杰出等。鸿蒙零碎是开源的,这意味着全世界的开发者都能够参加到它的开发和改良中,一起推动鸿蒙生态系统的建设。 焦虑迷茫之下 现实要落到实处在过来很长一段时间里,咱们始终在探讨大环境不好的问题。大公司裁员、部门合并、产品线膨胀……这些景象是互联网凋敝不再的体现吗?还是整体利润不够了?事实上,这些景象恰好阐明互联网正在逐步进入一个安稳的状态。 目前,有些行业要么门槛过高,要么入局难度大,要么薪资待遇较低,很少能提供就业机会或转行机会。大部分人可能会对此感到乐观,但也有一部分人在寻找机会。 如果你想持续从事IT或转行到IT,就必须抉择正确的方向,因为最终目标都是为了实现本人的价值,无论是学习技术还是从事其余任何事件。抉择鸿蒙(HarmonyOS)开发是一个不错的抉择,它能为咱们提供许多岗位机会。 校园大力 鸿蒙倒退不可挡截止目前,全国已有超过300所高校与华为鸿蒙开展单干,包含23所985工程高校和46所211工程高校。 其中,清华大学、北京航空航天大学和武汉大学等985工程高校曾经开始率先开设鸿蒙相干课程。另外,哈尔滨工业大学、天津大学、电子科技大学等十多所高校的鸿蒙我的项目曾经取得立项批准,行将开设相干课程。 据悉,鸿蒙相干课程是华为在教育部高教司领导下,与高校联结发展的产学单干协同育人我的项目,旨在造就要害核心技术畛域人才。在鸿蒙产学合作项目我的项目方面,目前曾经超过140个。华为鸿蒙零碎更是被纳入七年级学生的《信息技术》教材,并且与Windows等支流操作系统并列介绍,且位列首位。(遥遥领先) 只管300所高校的数量相比全国3000多所高校可能看似较少,但理论状况并非如此。依据最新统计,67.4%的高校并未开设鸿蒙原生利用开发相干课程,而27.1%的高校正在开设。值得一提的是,未开设相干课程的起因并非不愿开设,而是因为师资力量有余,无奈反对开设鸿蒙原生利用开发课程的教研和教学工作。这阐明,目前不仅鸿蒙的开发人员短缺,负责教研、教学的教师队伍也存在有余。 企业布局 鸿蒙利用布局动在承受问卷调查的企业中,超过78%的企业所开发的挪动利用部署在安卓平台上,22%的企业曾经开发出鸿蒙对应的挪动利用,其中近90%的企业都进行过鸿蒙原生利用/元服务开发的相干技术服务。 在谢谢企业中,有 50% 的企业抉择了张望,之所如此是因为他们都心愿在网上呈现大量胜利的鸿蒙原生利用呈现,甚至于是各场景下的鸿蒙原生利用开发解决方案失去解决之后再入局。 只管是如此,这些企业也依然心愿在有大量的鸿蒙胜利案例后,可能接到鸿蒙原生利用/元服务的开发我的项目,甚至于是大量的有教训的工程师通过培训或者外部转岗来胜任鸿蒙原生利用/元服务开发的工作。 智胜将来 技术人风口降临在往年的 HDC.Together 大会上。华为发表将在2024年第一季度面向开发者推出史上最特地的鸿蒙版本 “鸿蒙NEXT” 。该版本的零碎底座将由华为全线自研、不再兼容安卓利用,这也被外界称为"纯血版鸿蒙"。也正是因为不再兼容安卓,软件厂商须要从新针对鸿蒙NEXT做全新的开发,这也意味着须要额定的开发成本。 据理解,目前美团属于是各个大厂中单干态度最踊跃、投入资源也最多的厂商,外部给予鸿蒙我的项目较高的优先级。除此之外,京东、微博、钉钉、腾讯、支付宝等平台也在招聘鸿蒙开发工程师岗位。 此外,华为也无意在升高门槛上做出扭转,例如,因为华为本身提供的开发工具和开发语言须要较大的学习老本,因而将鸿蒙利用接口接入到了Flutter等风行的开发框架中。同时,也正如文章结尾所说,清华大学、南京大学等23所985工程高校和46所211工程高校也开设了鸿蒙课程,从校园层面加大人才培养力度。 从目前的势头来看,互联网大厂都在被动去开发、适配鸿蒙。起因在于,鸿蒙以后作为国产第一大挪动操作系统的潜质曾经体现进去,这是互联网头部APP无奈放弃的一个增量蛋糕。而华为HarmonyOS NEXT曾经搭载全新的底座技术和凋谢能力开发套件,只差开发者去开发了。简略来说,鸿蒙目前是高度寄托于开发者做强软件生态的,生态成、则鸿蒙成。千帆起,过万重山! 为了可能让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我本人近期学习心得以及参考网上材料整顿出的一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙根底入门学习指南》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙 (Harmony OS)开发学习手册》

February 22, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS添加删除Module

Module是利用/服务的基本功能单元,蕴含了源代码、资源文件、第三方库及利用/服务配置文件,每一个Module都能够独立进行编译和运行。一个HarmonyOS利用/服务通常会蕴含一个或多个Module,因而,能够在工程中创立多个Module,每个Module分为Ability和Library两种类型。 在工程中增加Module创立新的Module1.通过如下两种办法,在工程中增加新的Module。 办法1:鼠标移到工程目录顶部,单击鼠标右键,抉择New > Module...,开始创立新的Module。办法2:选中工程目录中任意文件,而后在菜单栏抉择File > New > Module...,开始创立新的Module。2.在New Project Module界面中,抉择须要创立的模板,单击Next。 3.在Module配置页面,设置新增Module的根本信息,而后单击Next。 Module name:新增模块的名称。Module type:仅在Ability模板存在该字段,能够抉择Feature和Entry类型。如果同一类型的设施曾经存在Entry模块,增加新Module抉择Entry类型时,还须要配置distroFilter散发规定。Enable Super Visual:是否应用低代码开发方式。Language:抉择该Module的开发语言。Device type:抉择模块的设施类型,如果新建模块的Module type为feature,则只能抉择该工程原有的设施类型;如果Module type为entry,能够抉择该Module反对的其余设施类型。Enable native:仅Library模板存在,将创立一个能够调用C/C++的共享包。4.若该Module的模板类型为Ability,还须要设置新增Ability的Ability name和Exported参数,Exported参数示意该Ability是否能够被其它利用/服务所调用(FA模型下为Visible参数)。 勾选(true):能够被其它利用/服务调用。不勾选(false):不能被其它利用/服务调用。5.单击Finish,期待创立实现后,能够在工程目录中查看和编辑新增的Module。 导入ModuleHarmonyOS工程反对从其它工程中导入HarmonyOS模块的性能,导入的模块只能是HarmonyOS工程中的模块。以后仅反对FA模型的模块导入到FA模型,Stage模型的模块导入到Stage模型,不反对FA模型的模块导入到Stage模型或Stage模型的模块导入到FA模型。 1.在菜单栏单击File > New >Import... >Import Module。2.抉择导入的模块时。其中SDK 4-7的工程既能够抉择模块也能够抉择工程,而SDK 8-9的工程只能够抉择模块。上面以SDK 8-9的工程为例介绍导入模块的具体操作。 在指定门路下,抉择导入的模块,单击OK。导入的模块能够为文件夹,也能够为zip格局。 配置distroFilter散发规定同一类型的设施(Phone、Wearable、Lite Wearable等)可能在零碎API版本(apiVersion)、屏幕形态(screenShape)、分辨率(screenWindow)上存在差别。针对这些差别,开发者须要针对同一类型设施的不同型号进行适配开发,而后在利用市场实现精准的散发,以便不同设施的用户能取得更好的应用体验。为了实现利用市场的精准散发,须要在一个工程中,针对同一类型设施增加多个Entry模块来适配不同型号的设施,而后再配置不同的散发规定。具体规定如下: 通过DeviceType与screenShape等属性的组合惟一确定一个Entry。distroFilter中至多蕴含属性中的一个标签。如果一个Entry模块中配置了screenShape等任意一个或多个标签,则其余的Entry模块也必须蕴含雷同的标签。个别状况下,screenShape和screenWindow标签用于Lite Wearable设施中。不同属性标签的配置格局如下。其中,policy取值为include时,示意设施满足value取值时,利用市场向该设施进行散发;policy取值为exclude时,示意除了value的取值外,其它非法的取值,利用市场都会向设施进行散发。阐明screenWindow标签的policy取值只能为include。Stage模型配置散发规定1.在entry > src > main > resources > profile文件中新建一个.json文件,并依据开发理论须要,配置如下代码信息。Stage模型下散发规定请参见distroFilter标签。 { "distroFilter": { "apiVersion": { //API 版本 "policy": "include", "value": [4, 5] }, "screenShape": { //屏幕形态枚举 "policy": "include", "value": ["circle", "rect"] }, "screenWindow": { //屏幕尺寸 "policy": "include", "value": ["454*454", "466*466"] }, "screenDensity": { //屏幕的像素密度 "policy": "exclude", "value": ["ldpi", "xldpi"] }, "countryCode": { //国家地区 "policy": "include", "value": ["CN", "HK"] } }}2.在module.json文件中指定散发文件。 ...

February 22, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOSLocalStorage页面级UI状态存储

LocalStorage是页面级的UI状态存储,通过@Entry装璜器接管的参数能够在页面内共享同一个LocalStorage实例。LocalStorage也能够在UIAbility实例内,在页面间共享状态。 本文仅介绍LocalStorage应用场景和相干的装璜器:@LocalStorageProp和@LocalStorageLink。 阐明本模块从API version 9开始反对。概述LocalStorage是ArkTS为构建页面级别状态变量提供存储的内存内“数据库”。 应用程序能够创立多个LocalStorage实例,LocalStorage实例能够在页面内共享,也能够通过GetShared接口,实现跨页面、UIAbility实例内共享。组件树的根节点,即被@Entry装璜的@Component,能够被调配一个LocalStorage实例,此组件的所有子组件实例将主动取得对该LocalStorage实例的拜访权限;被@Component装璜的组件最多能够拜访一个LocalStorage实例和AppStorage,未被@Entry装璜的组件不可被独立调配LocalStorage实例,只能承受父组件通过@Entry传递来的LocalStorage实例。一个LocalStorage实例在组件树上能够被调配给多个组件。LocalStorage中的所有属性都是可变的。应用程序决定LocalStorage对象的生命周期。当利用开释最初一个指向LocalStorage的援用时,比方销毁最初一个自定义组件,LocalStorage将被JS Engine垃圾回收。 LocalStorage依据与@Component装璜的组件的同步类型不同,提供了两个装璜器: @LocalStorageProp:@LocalStorageProp装璜的变量和与LocalStorage中给定属性建设单向同步关系。@LocalStorageLink:@LocalStorageLink装璜的变量和在@Component中创立与LocalStorage中给定属性建设双向同步关系。限度条件LocalStorage创立后,命名属性的类型不可更改。后续调用Set时必须应用雷同类型的值。LocalStorage是页面级存储,GetShared接口仅能获取以后Stage通过windowStage.loadContent传入的LocalStorage实例,否则返回undefined。例子可见将LocalStorage实例从UIAbility共享到一个或多个视图。@LocalStorageProp在上文中曾经提到,如果要建设LocalStorage和自定义组件的分割,须要应用@LocalStorageProp和@LocalStorageLink装璜器。应用@LocalStorageProp(key)/@LocalStorageLink(key)装璜组件内的变量,key标识了LocalStorage的属性。 当自定义组件初始化的时候,@LocalStorageProp(key)/@LocalStorageLink(key)装璜的变量会通过给定的key,绑定LocalStorage对应的属性,实现初始化。本地初始化是必要的,因为无奈保障LocalStorage肯定存在给定的key(这取决于应用逻辑是否在组件初始化之前在LocalStorage实例中存入对应的属性)。 阐明从API version 9开始,该装璜器反对在ArkTS卡片中应用。@LocalStorageProp(key)是和LocalStorage中key对应的属性建设单向数据同步,咱们容许本地扭转的产生,然而对于@LocalStorageProp,本地的批改永远不会同步回LocalStorage中,相同,如果LocalStorage给定key的属性产生扭转,扭转会被同步给@LocalStorageProp,并笼罩掉本地的批改。 装璜器应用规定阐明 变量的传递/拜访规定阐明图1 @LocalStorageProp初始化规定图示 察看变动和行为表现察看变动 当装璜的数据类型为boolean、string、number类型时,能够察看到数值的变动。当装璜的数据类型为class或者Object时,能够察看到赋值和属性赋值的变动,即Object.keys(observedObject)返回的所有属性。当装璜的对象是array时,能够察看到数组增加、删除、更新数组单元的变动。框架行为 当@LocalStorageProp(key)装璜的数值扭转被察看到时,批改不会被同步回LocalStorage对应属性键值key的属性中。以后@LocalStorageProp(key)单向绑定的数据会被批改,即仅限于以后组件的公有成员变量扭转,其余的绑定该key的数据不会同步扭转。当@LocalStorageProp(key)装璜的数据自身是状态变量,它的扭转尽管不会同步回LocalStorage中,然而会引起所属的自定义组件的从新渲染。当LocalStorage中key对应的属性产生扭转时,会同步给所有@LocalStorageProp(key)装璜的数据,@LocalStorageProp(key)本地的批改将被笼罩。@LocalStorageLink如果咱们须要将自定义组件的状态变量的更新同步回LocalStorage,就须要用到@LocalStorageLink。 @LocalStorageLink(key)是和LocalStorage中key对应的属性建设双向数据同步: 1.本地批改产生,该批改会被写回LocalStorage中;2.LocalStorage中的批改产生后,该批改会被同步到所有绑定LocalStorage对应key的属性上,包含单向(@LocalStorageProp和通过prop创立的单向绑定变量)、双向(@LocalStorageLink和通过link创立的双向绑定变量)变量。 装璜器应用规定阐明 变量的传递/拜访规定阐明图2 @LocalStorageLink初始化规定图示 察看变动和行为表现察看变动 当装璜的数据类型为boolean、string、number类型时,能够察看到数值的变动。当装璜的数据类型为class或者Object时,能够察看到赋值和属性赋值的变动,即Object.keys(observedObject)返回的所有属性。当装璜的对象是array时,能够察看到数组增加、删除、更新数组单元的变动。框架行为 1.当@LocalStorageLink(key)装璜的数值扭转被察看到时,批改将被同步回LocalStorage对应属性键值key的属性中。2.LocalStorage中属性键值key对应的数据一旦扭转,属性键值key绑定的所有的数据(包含双向@LocalStorageLink和单向@LocalStorageProp)都将同步批改。3.当@LocalStorageLink(key)装璜的数据自身是状态变量,它的扭转不仅仅会同步回LocalStorage中,还会引起所属的自定义组件的从新渲染。 应用场景应用逻辑应用LocalStoragelet storage = new LocalStorage({ 'PropA': 47 }); // 创立新实例并应用给定对象初始化let propA = storage.get('PropA') // propA == 47let link1 = storage.link('PropA'); // link1.get() == 47let link2 = storage.link('PropA'); // link2.get() == 47let prop = storage.prop('PropA'); // prop.get() = 47link1.set(48); // two-way sync: link1.get() == link2.get() == prop.get() == 48prop.set(1); // one-way sync: prop.get()=1; but link1.get() == link2.get() == 48link1.set(49); // two-way sync: link1.get() == link2.get() == prop.get() == 49从UI外部应用LocalStorage除了利用程序逻辑应用LocalStorage,还能够借助LocalStorage相干的两个装璜器@LocalStorageProp和@LocalStorageLink,在UI组件外部获取到LocalStorage实例中存储的状态变量。 ...

February 21, 2024 · 3 min · jiezi

关于harmonyos:HarmonyOS开发行业前景就业分析与实例解析

HarmonyOS的简介鸿蒙零碎(HarmonyOS)是华为公司自主研发的一种全场景分布式操作系统,旨在为各种设施提供对立的开发和运行环境。它的编程根底次要建设在多种技术和语言之上,包含鸿蒙零碎的外围框架和利用程序开发框架。 本章将介绍HarmonyOS编程的历史、位置以及次要应用领域,帮忙读者全面理解HarmonyOS在编程畛域的重要性。 一、HarmonyOS的历史和倒退如果要问2024年最火的技术是什么,那鸿蒙开发必须占据一些地位,HarmonyOS是华为自主研发的物联网操作系统, 经验四年多的倒退已构建起全新的智慧生态体系,彻底改变了智能终端的交互方式,过后鸿蒙生态的智能设施已超过7亿台。同时还带来了HarmonyOS NEXT开发者预览版,零碎底座全栈自研,去掉了传统的AOSP代码,仅反对原生利用,缩小了40%的冗余代码,进步了安全性、稳定性和流畅性。 据TechInsights的最新预测,2024年寰球智能手机销量将同比增长3%。Android和iOS将持续在寰球范畴内放弃双雄位置,不过在国内市场的份额将被HarmonyOS操作系统鲸吞。从2024年起,HarmonyOS将成为国内市场第二大智能手机操作系统。 二、HarmonyOS的次要应用领域HarmonyOS 是一款 “ 面向未来 ” 、面向全场景(挪动办公、静止衰弱、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设施零碎能力的根底上,HarmonyOS提出了基于同一套零碎能力、适配多种终端状态的分布式理念,可能反对多种终端设备。 1.对消费者而言, HarmonyOS 可能将生存场景中的各类终端进行能力整合,造成一个“ 超级虚构终端 ” ,能够实现不同的终端设备之间的疾速连贯、能力互助、资源共享,匹配适合的设施、提供晦涩的全场景体验。 2.对利用开发者而言, HarmonyOS 采纳了多种分布式技术,使得应用程序的开发实现与不同终端设备的状态差别无关,升高了开发难度和老本。这可能让开发者聚焦下层业务逻辑,更加便捷、高效地开发利用。 3.对设施开发者而言, HarmonyOS 采纳了组件化的设计方案,能够依据设施的 资源能力和业务特色进行灵便裁剪,满足不同状态的终端设备对于操作系统的要求。 HarmonyOS的行业前景剖析鉴于鸿蒙零碎的崛起和迅猛发展,人们对它是否可能逆袭成为国内第二大智能手机操作系统怀有期待和疑难。 1、鸿蒙零碎的前景:逆袭iOS的可能性 出名评测机构Techlnsights预测,到2024年,鸿蒙零碎有可能超过iOS,成为国内第二大智能手机操作系统。这一预测为华为和鸿蒙零碎带来了微小的信念和能源。然而,在竞争强烈的挪动操作系统市场中,要实现逆袭依然须要工夫和致力。鸿蒙零碎须要争取更多消费者和厂商的反对,不断完善本身的性能和用户体验,能力真正成为一个无力的竞争对手。 2、国产操作系统的崛起:重要的里程碑 鸿蒙零碎的崛起不仅是华为的自救口头和科技翻新成绩的展现,同时也标记着国产操作系统走向成熟和自立的重要里程碑。过来,国内很大水平上依赖于国外的操作系统,如安卓和iOS。但随着鸿蒙零碎的崛起,国内企业有了更多自主研发和翻新的空间,为中国科技和翻新提供了更加松软的根底。 HarmonyOS技能的市场需求状况国内APP大厂纷纷发表启动鸿蒙原生利用开发,鸿蒙新生态幅员曾经根本欠缺。 除此之外,OpenHarmony社区在过来一年中吸引了超过6700名贡献者,共建单位达到70家,社区活跃度显著晋升。在这一年里,社区产生了惊人的26.9万多个Pull Request(PR),播种了2.4万多个Star和6.7万多个Fork。 鸿蒙OS工程师的就业机会随着鸿蒙生态的一直壮大,越来越多的企业开始退出其中,对鸿蒙OS开发工程师的需要也越来越迫切。据新浪科技报道,多家互联网公司相继公布了鸿蒙OS的App开发工程师岗位,开展了一场强烈的人才争夺战。现如今互联网行业对鸿蒙开发人才的需要在一直增长。而企业之间的抢人大战也表明鸿蒙开发人才在市场上的稀缺性。对于那些有志于从事鸿蒙开发的人来说,这是一个难得的机会。 如何学习为了可能让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我本人近期学习心得以及参考网上材料整顿出的一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《《鸿蒙 (Harmony OS)开发学习手册》》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习?-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 最初鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锻炼,再到对前沿技术的摸索,每一环节都至关重要。心愿这份教程材料能帮忙您疾速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让咱们一起乘风破浪,拥抱鸿蒙生态的广大将来! 如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。 关注我,同时能够期待后续文章ing,不定期分享原创常识。 想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙根底入门学习指南》

February 21, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS资源分类与访问

利用开发过程中,常常须要用到色彩、字体、间距、图片等资源,在不同的设施或配置中,这些资源的值可能不同。 利用资源:借助资源文件能力,开发者在利用中自定义资源,自行治理这些资源在不同的设施或配置中的体现。系统资源:开发者间接应用零碎预置的资源定义(即分层参数,同一资源ID在设施类型、深浅色等不同配置下有不同的取值)。资源分类利用开发中应用的各类资源文件,须要放入特定子目录中存储管理。资源目录的示例如下所示,base目录、限定词目录、rawfile目录称为资源目录,element、media、profile称为资源组目录。 阐明stage模型多工程状况下,共有的资源文件放到AppScope下的resources目录。资源目录示例: resources|---base| |---element| | |---string.json| |---media| | |---icon.png| |---profile| | |---test_profile.json|---en_US // 默认存在的目录,设施语言环境是美式英文时,优先匹配此目录下资源| |---element| | |---string.json| |---media| | |---icon.png| |---profile| | |---test_profile.json|---zh_CN // 默认存在的目录,设施语言环境是简体中文时,优先匹配此目录下资源| |---element| | |---string.json| |---media| | |---icon.png| |---profile| | |---test_profile.json|---en_GB-vertical-car-mdpi // 自定义限定词目录示例,由开发者创立| |---element| | |---string.json| |---media| | |---icon.png| |---profile| | |---test_profile.json|---rawfile // 其余类型文件,原始文件模式保留,不会被集成到resources.index文件中。文件名可自定义。资源目录base目录 base目录是默认存在的目录,二级子目录element用于寄存字符串、色彩、布尔值等根底元素,media、profile寄存媒体、动画、布局等资源文件。 目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。通过指定资源类型(type)和资源名称(name)援用。 限定词目录 en_US和zh_CN是默认存在的两个限定词目录,其余限定词目录须要开发者依据开发须要自行创立。二级子目录element、media、profile用于寄存字符串、色彩、布尔值等根底元素,以及媒体、动画、布局等资源文件。 同样,目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。通过指定资源类型(type)和资源名称(name)来援用。 限定词目录的命名要求限定词目录能够由一个或多个表征利用场景或设施特色的限定词组合而成,包含挪动国家码和挪动网络码、语言、文字、国家或地区、横竖屏、设施类型、色彩模式和屏幕密度等维度,限定词之间通过下划线(_)或者中划线(-)连贯。开发者在创立限定词目录时,须要恪守限定词目录的命名规定。 限定词的组合程序:_挪动国家码_挪动网络码-语言_文字_国家或地区-横竖屏-设施类型-色彩模式-屏幕密度_。开发者能够依据利用的应用场景和设施特色,抉择其中的一类或几类限定词组成目录名称。限定词的连贯形式:语言、文字、国家或地区之间采纳下划线(_)连贯,挪动国家码和挪动网络码之间也采纳下划线(_)连贯,除此之外的其余限定词之间均采纳中划线(-)连贯。例如:zh_Hant_CN、zh_CN-car-ldpi。限定词的取值范畴:每类限定词的取值必须合乎限定词取值要求表中的条件,如表2。否则,将无奈匹配目录中的资源文件。表2 限定词取值要求rawfile目录 反对创立多层子目录,目录名称能够自定义,文件夹内能够自在搁置各类资源文件。 目录中的资源文件会被间接打包进利用,不通过编译,也不会被赋予资源文件ID。通过指定文件门路和文件名援用。 资源组目录资源组目类型包含element、media、profile,用于寄存特定类型的资源文件。 表3 资源组目录阐明 媒体资源类型阐明表4 图片资源类型阐明 表5 音视频资源类型阐明 资源文件示例 color.json文件的内容如下: ...

February 21, 2024 · 2 min · jiezi

关于harmonyos:HarmonyOSObserved装饰器和ObjectLink嵌套类对象属性变化

@Observed装璜器和@ObjectLink装璜器:嵌套类对象属性变动概述 @ObjectLink和@Observed类装璜器用于在波及嵌套对象或数组的场景中进行双向数据同步: 被@Observed装璜的类,能够被察看到属性的变动;子组件中@ObjectLink装璜器装璜的状态变量用于接管@Observed装璜的类的实例,和父组件中对应的状态变量建设双向数据绑定。这个实例能够是数组中的被@Observed装璜的项,或者是classobject中的属性,这个属性同样也须要被@Observed装璜。独自应用@Observed是没有任何作用的,须要搭配@ObjectLink或者@Prop应用。限度条件 应用@Observed装璜class会扭转class原始的原型链,@Observed和其余类装璜器装璜同一个class可能会带来问题。@ObjectLink装璜器不能在@Entry装璜的自定义组件中应用。装璜器阐明@ObjectLink装璜的数据为可读示例。 // 容许@ObjectLink装璜的数据属性赋值this.objLink.a= ...// 不容许@ObjectLink装璜的数据本身赋值this.objLink= ...阐明 @ObjectLink装璜的变量不能被赋值,如果要应用赋值操作,请应用@Prop。 @Prop装璜的变量和数据源的关系是是单向同步,@Prop装璜的变量在本地拷贝了数据源,所以它容许本地更改,如果父组件中的数据源有更新,@Prop装璜的变量本地的批改将被笼罩;@ObjectLink装璜的变量和数据源的关系是双向同步,@ObjectLink装璜的变量相当于指向数据源的指针。如果一旦产生@ObjectLink装璜的变量的赋值,则同步链将被打断。变量的传递/拜访规定阐明 图1 初始化规定图示察看变动和行为表现 察看的变动 @Observed装璜的类,如果其属性为非简略类型,比方class、Object或者数组,也须要被@Observed装璜,否则将察看不到其属性的变动。 class ClassA { public c: number; constructor(c: number) { this.c = c; }}@Observedclass ClassB { public a: ClassA; public b: number; constructor(a: ClassA, b: number) { this.a = a; this.b = b; }}以上示例中,ClassB被@Observed装璜,其成员变量的赋值的变动是能够被察看到的,但对于ClassA,没有被@Observed装璜,其属性的批改不能被察看到。 @ObjectLink b: ClassB// 赋值变动能够被察看到this.b.a = new ClassA(5)this.b.b = 5// ClassA没有被@Observed装璜,其属性的变动察看不到this.b.a.c = 5@ObjectLink:@ObjectLink只能接管被@Observed装璜class的实例,能够察看到: 其属性的数值的变动,其中属性是指Object.keys(observedObject)返回的所有属性,示例请参考嵌套对象。如果数据源是数组,则能够察看到数组item的替换,如果数据源是class,可察看到class的属性的变动,示例请参考对象数组。框架行为 1.初始渲染: a.@Observed装璜的class的实例会被不通明的代理对象包装,代理了class上的属性的setter和getter办法 b.子组件中@ObjectLink装璜的从父组件初始化,接管被@Observed装璜的class的实例,@ObjectLink的包装类会将本人注册给@Observed class。 2.属性更新:当@Observed装璜的class属性扭转时,会走到代理的setter和getter,而后遍历依赖它的@ObjectLink包装类,告诉数据更新。 应用场景 嵌套对象 以下是嵌套类对象的数据结构。 ...

February 20, 2024 · 3 min · jiezi

关于harmonyos:薪的一年程序员裁员潮技术变革情况下-程序员就业机会在哪里

引言:一对来自中国的工程师夫妻在美国的不幸身亡,疑似与谷歌的裁员无关,这一事件再次引发了人们对技术改革下裁员对程序员影响的关注。 一、针对裁员潮的一些认识在我看来,技术改革对程序员的影响是双面的。一方面,技术改革意味着程序员须要一直学习新技术,晋升本人的技能,以适应市场需求。这不仅是为了应答可能的裁员危险,也是为了集体职业倒退的须要 然而,技术改革也可能导致一些传统岗位的隐没或边缘化,使得一些程序员面临被裁员的危险。尤其是在大型科技公司中,裁员可能更为广泛。对于被裁员的程序员来说,从新找到工作可能会面临肯定的艰难。一方面是因为市场需求的变动,另一方面是因为裁员往往随同着年龄、教训等门槛的进步 此外,对于那些曾经在公司工作多年的程序员来说,从新找工作可能须要适应不同的文化、团队和治理形式,这也是一个挑战。然而,技术改革也带来了机会 首先,技术改革催生了一些新兴畛域和岗位,为程序员提供了更多的就业机会。其次,技术改革使得一些传统岗位得以降级或转型,为程序员提供了更多的倒退空间。 最初,技术改革也减速了技术的更新换代,为程序员提供了更多的学习机会和挑战。因而,我认为技术改革对程序员的影响是双面的。尽管裁员的危险存在,但只有咱们放弃踊跃的心态和一直学习的精力,适应市场需求的变动,咱们依然能够在技术改革中找到本人的地位和倒退机会。 二、应答程序员裁员潮一些倡议随着科技的疾速倒退,程序员这一职业群体正面临着微小的挑战。技术改革的浪潮不断涌现,而随之而来的便是大规模的裁员潮。许多程序员发现,他们已经引以为傲的技术技能,在市场需求疾速变动下,变得不再那么有价值。那么,如何应答这一危机,放弃本人的竞争力和职业倒退呢? 1.技术改革下的裁员潮近年来,随着鸿蒙开发、人工智能、云计算、大数据等技术的衰亡,许多公司为了跟上市场的步调,纷纷进行技术升级和转型。然而,在这个过程中,许多传统的程序员岗位被逐步边缘化,甚至被淘汰。公司为了降低成本和提高效率,大规模裁员成为了一个无奈的抉择。 2.应答策略一直学习新技术 对于程序员来说,为了应答技术改革的挑战,我们须要建设继续学习的习惯。一直学习新技术和常识能够帮忙咱们放弃竞争力,跟上市场的步调。 建设人际关系网络 在技术行业,人际关系网络是十分重要的资源。通过加入技术会议、开源我的项目、社交媒体等流动,咱们能够结交更多的同行和敌人。这些人脉不仅能够为咱们提供学习的机会和资源,还能够帮忙咱们理解行业的动静和趋势,甚至为咱们提供新的工作机会。 关注行业动态和技术趋势 理解行业动态和技术趋势是十分必要的。咱们须要时刻关注市场的变动和行业的倒退方向, 理解新技术和新利用的呈现、通过关注行业动态和技术趋势,咱们能够更好地理解市场需求和将来倒退的方向,为本人的职业倒退做好筹备、也能够帮忙咱们更好地布局本人的职业倒退 将来程序员待业的新机会鸿蒙开发:随着鸿蒙零碎的广泛应用,对把握鸿蒙零碎开发技能的程序员需要减少。把握鸿蒙零碎开发,能够让程序员在开发跨平台利用、智能设施利用等方面具备更强的竞争力。 互联网巨头纷纷退出鸿蒙零碎开发的人才争夺战,鸿蒙工程师逐步成为了市场上的香饽饽。现在,这个时机终于来临在了前端开发者身上。 近期,美团、网易、京东等互联网大厂纷纷公布了和鸿蒙零碎无关的岗位。据脉脉平台获取的数据显示,这些岗位给出的薪资待遇也相当迷人。 美团的鸿蒙基建工程师岗位月薪范畴在4万元-6万元之间;京东公布的前端架构师(鸿蒙方向)岗位月薪范畴在4-7万元,要求5-10年工作教训,有鸿蒙操作系统相干开发教训及鸿蒙利用开发教训者优先。随着鸿蒙零碎的崛起,高级程序员们也迎来了新的时机与抉择。据智联招聘平台数据显示,2024年鸿蒙工程师均匀招聘薪资达20-30k元/月,远超市场平均水平。 这一趋势激发了程序员们学习新技能和常识的激情,许多开发者们纷纷涌入华为鸿蒙生态圈,也体现了鸿蒙发展趋势下的人才需求热度。 在这场互联网巨头抢人大战中,鸿蒙工程师成为了市场的焦点。 对于开发者们来说,抓住这个时机不仅能够晋升本人的技能和常识程度,还能够取得更好的薪资待遇和发展前景。 如果你对鸿蒙零碎的开发感兴趣,咱们能够利用空余工夫进行学习充电,加入线上或线下的课程培训,继续学习不仅能够晋升咱们的技能程度,还能够拓宽咱们的知识面和视线。成为“站在风口上”的鸿蒙工程师! 为了可能让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我本人近期学习心得以及参考网上材料整顿出的一份最新版的鸿蒙学习晋升材料,有须要的小伙伴自行支付,限时开源,先到先得~~~~ 支付以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS根底技能学习路线图 支付以上残缺高清学习路线图,请点击→《鸿蒙开发学习之利用模型》小编本人整顿的局部学习材料(蕴含有高清视频、开发文档、电子书籍等) 以上分享的学习路线都适宜哪些人跟着学习? -应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,将来高起点待业。-0根底转行提前布局新方向,抓住风口,自我晋升,取得更多就业机会。-技术晋升/进阶跳槽倒退瓶颈期,晋升职场竞争力,疾速把握鸿蒙技术,享受蓝海红利。 总结如果你感觉这篇内容对你有帮忙,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我发明的能源。关注我,同时能够期待后续文章ing,不定期分享原创常识。想要获取更多残缺鸿蒙最新VIP学习材料,请点击→《鸿蒙根底入门学习指南》

February 20, 2024 · 1 min · jiezi

关于harmonyos:OpenHarmony-JS和TS三方组件使用指导

OpenHarmony JS和TS三方组件介绍OpenHarmony JS和TS三方组件应用的是OpenHarmony动态共享包,即HAR(Harmony Archive),能够蕴含js/ts代码、c++库、资源和配置文件。通过HAR,能够实现多个模块或者多个工程共享ArkUI组件、资源等相干代码。HAR不同于HAP,不能独立装置运行在设施上,只能作为利用模块的依赖项被援用。 查找OpenHarmony JS和TS三方组件1.关注Gitee官网OpenHarmony-TPC三方组件资源汇总我的项目,依据目录索引即可找到对应分类下的具体组件。 2.拜访OpenHarmony官网,通过类型,分类,以及关键字搜寻须要的三方组件。 装置并应用OpenHarmony JS和TS语言的三方组件援用三方HAR,包含从仓库进行装置和从本地库模块中进行装置两种形式。 援用仓库装置的HAR援用ohpm仓中的HAR,首先须要设置三方HAR的仓库信息,DevEco Studio默认仓库地址是"https://repo.harmonyos.com/ohpm/",如果您想设置自定义仓库,请在DevEco Studio的Terminal窗口执行如下命令进行设置(执行命令前,请确保将DevEco Studio中ohpm装置地址配置在“环境变量-零碎变量-PATH”中): ohpm config set registry=your_registry1,your_registry2阐明:ohpm反对多个仓库地址,采纳英文逗号分隔。 而后通过如下两种形式设置三方包依赖信息: 形式一:在Terminal窗口中,执行如下命令装置三方包,DevEcoStudio会主动在工程的oh-package.json5中主动增加三方包依赖。ohpm install @ohos/lottie形式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:"dependencies": { "@ohos/lottie": "^2.0.0"}依赖设置实现后,须要执行ohpm install命令装置依赖包,依赖包会存储在工程的oh_modules目录下。 ohpm install援用本地库模块的文件和资源形式一:在Terminal窗口中,执行如下命令进行装置,并会在oh-package5.json中主动增加依赖。ohpm install ../library形式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下: "dependencies": { "library": "file:../library"}依赖设置实现后,须要执行ohpm install命令装置依赖包,依赖包会存储在工程的oh_modules目录下。 ohpm install阐明:在援用OpenHarmony HAR时,请留神以下事项 以后只反对在模块和工程下的oh-package.json5文件中申明dependencies依赖,才会被当做OpenHarmony依赖应用,并在编译构建过程中进行相应的解决。援用的模块的compileSdkVersion不能低于其依赖的OpenHarmonyohpm三方包(可在oh_modules目录下,找到援用的ohpm包的src > main > module.json5 中查看)。援用OpenHarmony HAR hml页面在JS工程范式中,组件性能由hml承载,开发者能够在JS工程的hml页面通过标签来引入OpenHarmony HAR中的共享hml页面,示例如下: <element name="comp" src="library/src/main/js/components/index/index.hml"></element>其中,library为OpenHarmony HAR的包名,hml页面的门路为OpenHarmony HAR中的相对路径。随后便能够通过设置的name来应用该element元素,以援用OpenHarmony HAR中的hml页面,示例如下: <element name="comp" src="library/src/main/js/components/index/index.hml"></element><div class="container"> <comp></comp> <text class="title"> {{ $t('strings.hello') }} {{ title }} </text></div>援用OpenHarmony HAR ArkTS页面ArkTS是TypeScript的扩大,因而导出和引入的语法与TypeScript统一。在OpenHarmony ohpm模块中,能够通过export导出ArkTS页面,示例如下: // library/src/main/ets/components/mainpage/MainPage.ets@Entry@Componentexport struct MainPage { @State message: string = 'Hello World' build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) } .width('100%') } .height('100%') }}而后在其它模块中通过import引入导出的ArkTS页面,示例如下所示: ...

February 20, 2024 · 1 min · jiezi

关于harmonyos:HarmonyOS非线性容器特性及使用场景

非线性容器实现能疾速查找的数据结构,其底层通过 hash 或者红黑树实现,包含 HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray 七种。非线性容器中的 key 及 value 的类型均满足 ECMA 规范。 HashMapHashMap可用来存储具备关联关系的 key-value 键值对汇合,存储元素中 key 是惟一的,每个 key 会对应一个 value 值。 HashMap 根据泛型定义,汇合中通过 key 的 hash 值确定其存储地位,从而疾速找到键值对。HashMap 的初始容量大小为 16,并反对动静扩容,每次扩容大小为原始容量的 2 倍。HashMap 底层基于 HashTable 实现,抵触策略采纳链地址法。 HashMap 和TreeMap相比,HashMap 根据键的 hashCode 存取数据,访问速度较快。而 TreeMap 是有序存取,效率较低。 HashSet基于 HashMap 实现。HashMap 的输出参数由 key、value 两个值组成。在 HashSet 中,只对 value 对象进行解决。需 要疾速存取、删除以及插入键值对数据时,举荐应用 HashMap。 HashMap 进行增、删、改、查操作的罕用 API 如下: HashSetHashSet可用来存储一系列值的汇合,存储元素中 value 是惟一的。HashSet 根据泛型定义,汇合中通过 value 的 hash 值确定其存储地位,从而疾速找到该值。HashSet 初始容量大小为 16,反对动静扩容,每次扩容大小为原始容量的 2 倍。value 的类型满足 ECMA 规范中要求的类型。HashSet 底层数据结构基于 HashTable 实现,抵触策略采纳链地址法。 ...

September 28, 2023 · 2 min · jiezi

关于harmonyos:HarmonyOS线性容器特性及使用场景

线性容器实现能按程序拜访的数据结构,其底层次要通过数组实现,包含 ArrayList、Vector、List、LinkedList、Deque、Queue、Stack 七种。 线性容器,充分考虑了数据拜访的速度,运行时(Runtime)通过一条字节码指令就能够实现增、删、改、查等操作。 ArrayListArrayList即动静数组,可用来结构全局的数组对象。 当须要频繁读取汇合中的元素时,举荐应用 ArrayList。 ArrayList 根据泛型定义,要求存储地位是一片间断的内存空间,初始容量大小为 10,并反对动静扩容,每次扩容大小为原始容量的 1.5 倍。 ArrayList 进行增、删、改、查操作的罕用 API 如下: VectorVector是指间断存储构造,可用来结构全局的数组对象。Vector 根据泛型定义,要求存储地位是一片间断的内存空间,初始容量大小为 10,并反对动静扩容,每次扩容大小为原始容量的 2 倍。 Vector 和ArrayList类似,都是基于数组实现,但 Vector 提供了更多操作数组的接口。Vector 在反对操作符拜访的根底上,还减少了 get/set 接口,提供更为欠缺的校验及容错机制,满足用户不同场景下的需要。 API version 9 开始,该接口不再保护,举荐应用ArrayList。 Vector 进行增、删、改、查操作的罕用 API 如下: ListList可用来结构一个单向链表对象,即只能通过头结点开始拜访到尾节点。List 根据泛型定义,在内存中的存储地位能够是不间断的。 List 和LinkedList相比,LinkedList 是双向链表,能够疾速地在头尾进行增删,而 List 是单向链表,无奈双向操作。 当须要频繁的插入删除时,举荐应用 List 高效操作。 能够通过 get/set 等接口对存储的元素进行批改,List 进行增、删、改、查操作的罕用 API 如下: LinkedListLinkedList可用来结构一个双向链表对象,能够在某一节点向前或者向后遍历 List。LinkedList 根据泛型定义,在内存中的存储地位能够是不间断的。 LinkedList 和List相比,LinkedList 是双向链表,能够疾速地在头尾进行增删,而 List 是单向链表,无奈双向操作。 LinkedList 和ArrayList相比,插入数据效率 LinkedList 优于 ArrayList,而查问效率 ArrayList 优于 LinkedList。 ...

September 27, 2023 · 2 min · jiezi

关于harmonyos:HarmonyOS-CPU与IO密集型任务开发指导

一、CPU 密集型工作开发领导CPU 密集型工作是指须要占用系统资源解决大量计算能力的工作,须要长时间运行,这段时间会阻塞线程其它事件的解决,不合适放在主线程进行。例如图像处理、视频编码、数据分析等。 基于多线程并发机制解决 CPU 密集型工作能够进步 CPU 利用率,晋升应用程序响应速度。 当进行一系列同步工作时,举荐应用 Worker;而进行大量或调度点较为扩散的独立工作时,不方便使用 8 个 Worker 去做负载治理,举荐采纳 TaskPool。接下来将以图像直方图解决以及后盾长时间的模型预测工作别离进行举例。 应用 TaskPool 进行图像直方图解决1.  实现图像处理的业务逻辑。2.  数据分段,将各段数据通过不同工作的执行实现图像处理。创立Task,通过execute()执行工作,在当前任务完结后,会将直方图处理结果同时返回。3.  后果数组汇总解决。 import taskpool from '@ohos.taskpool';@Concurrentfunction imageProcessing(dataSlice: ArrayBuffer) { // 步骤1: 具体的图像处理操作及其他耗时操作 return dataSlice;}function histogramStatistic(pixelBuffer: ArrayBuffer) { // 步骤2: 分成三段并发调度 let number = pixelBuffer.byteLength / 3; let buffer1 = pixelBuffer.slice(0, number); let buffer2 = pixelBuffer.slice(number, number * 2); let buffer3 = pixelBuffer.slice(number * 2); let task1 = new taskpool.Task(imageProcessing, buffer1); let task2 = new taskpool.Task(imageProcessing, buffer2); let task3 = new taskpool.Task(imageProcessing, buffer3); taskpool.execute(task1).then((ret: ArrayBuffer[]) => { // 步骤3: 后果解决 }); taskpool.execute(task2).then((ret: ArrayBuffer[]) => { // 步骤3: 后果解决 }); taskpool.execute(task3).then((ret: ArrayBuffer[]) => { // 步骤3: 后果解决 });}@Entry@Componentstruct Index { @State message: string = 'Hello World' build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(() => { let data: ArrayBuffer; histogramStatistic(data); }) } .width('100%') } .height('100%') }}应用 Worker 进行长时间数据分析本文通过某地区提供的房价数据训练一个繁难的房价预测模型,该模型反对通过输出屋宇面积和房间数量去预测该区域的房价,模型须要长时间运行,房价预测须要应用后面的模型运行后果,因而须要应用 Worker。 ...

September 26, 2023 · 3 min · jiezi

关于harmonyos:HarmonyOS使用多线程并发能力开发

一、多线程并发概述1、简介并发模型是用来实现不同利用场景中并发工作的编程模型,常见的并发模型分为基于内存共享的并发模型和基于音讯通信的并发模型。 Actor 并发模型作为基于音讯通信并发模型的典型代表,不须要开发者去面对锁带来的一系列简单偶发的问题,同时并发度也绝对较高,因而失去了宽泛的反对和应用,也是以后 ArkTS 语言选择的并发模型。 因为 Actor 模型的内存隔离个性,所以须要进行跨线程的数据序列化传输。 2、数据传输对象目前反对传输的数据对象能够分为一般对象、可转移对象、可共享对象、Native绑定对象四种。 ● 一般对象 一般对象传输采纳规范的结构化克隆算法(Structured Clone)进行序列化,此算法能够通过递归的形式拷贝传输对象,相较于其余序列化的算法,反对的对象类型更加丰盛。 序列化反对的类型包含:除 Symbol 之外的根底类型、Date、String、RegExp、Array、Map、Set、Object(仅限简略对象,比方通过“{}”或者“new Object”创立,一般对象仅反对传递属性,不反对传递其原型及办法)、ArrayBuffer、TypedArray。 ● 可转移对象可转移对象(Transferable object)传输采纳地址转移进行序列化,不须要内容拷贝,会将 ArrayBuffer 的所有权转移给接管该 ArrayBuffer 的线程,转移后该 ArrayBuffer 在发送它的线程中变为不可用,不容许再拜访。 // 定义可转移对象let buffer = new ArrayBuffer(100);● 可共享对象共享对象 SharedArrayBuffer,领有固定长度,能够存储任何类型的数据,包含数字、字符串等。 共享对象传输指 SharedArrayBuffer 反对在多线程之间传递,传递之后的 SharedArrayBuffer 对象和原始的 SharedArrayBuffer 对象能够指向同一块内存,进而达到内存共享的目标。 SharedArrayBuffer 对象存储的数据在同时被批改时,须要通过原子操作保障其同步性,即下个操作开始之前务必须要等到上个操作曾经完结。 // 定义可共享对象,能够应用Atomics进行操作let sharedBuffer = new SharedArrayBuffer(1024);● Native 绑定对象Native 绑定对象(Native Binding Object)是零碎所提供的对象,该对象与底层零碎性能进行绑定,提供间接拜访底层零碎性能的能力。 以后反对序列化传输的 Native 绑定对象次要蕴含:Context和RemoteObject。 Context 对象蕴含应用程序组件的上下文信息,它提供了一种拜访零碎服务和资源的形式,使得应用程序组件能够与零碎进行交互。获取 Context 信息的办法能够参考获取上下文信息。 RemoteObject 对象的次要作用是实现近程通信的性能,它容许在不同的过程间传递对象的援用,使得不同过程之间能够共享对象的状态和办法,服务提供者必须继承此类,RemoteObject 对象的创立能够参考RemoteObject的实现。 3、TaskPool 和 WorkerArkTS 提供了 TaskPool 和 Worker 两种并发能力供开发者抉择,其具体的实现特点和各自的实用场景存在差别,具体请参见TaskPool和Worker的比照。 二、TaskPool 和 Worker 的比照TaskPool(工作池)和 Worker 的作用是为应用程序提供一个多线程的运行环境,用于解决耗时的计算工作或其余密集型工作。能够无效地防止这些工作阻塞主线程,从而最大化零碎的利用率,升高整体资源耗费,并进步零碎的整体性能。 ...

September 25, 2023 · 2 min · jiezi

关于harmonyos:HarmonyOS-40-实况窗上线支付宝实现医疗场景智能提醒

本文转载自支付宝体验科技,作者是蚂蚁团体客户端工程师博欢,介绍了支付宝如何基于 HarmonyOS 4.0 实况窗实现医疗场景履约智能揭示。 1.话题背景8 月 4 日,华为在 HDC(华为 2023 开发者大会)上推出了新版本操作系统HarmonyOS 4.0,主打个性化与多元化的的口号。在性能介绍环节,支付宝依靠HarmonyOS 4.0 能力提供的一项新性能呈现在了大会的介绍PPT上。 这个性能乍一看就像一个零碎的告诉,实际上也的确是一个告诉,只不过与告诉有很大的区别。在华为的官网文档里,这个被称之为实时流动或者是实况告诉。实时流动是最开始的名称,当初官网文档称之为实况窗。 为什么说它是国产灵动岛呢?因为这个实况窗具备多种状态,其中的胶囊态与iOS的灵动岛在UI展现上简直就是"一模一样"。除此之外,实况窗具备更加丰盛的展现地位,从熄屏,锁屏,到桌面,告诉栏,告诉核心,都有其身影。咱们首先来看一下官网的成果展现: 顺次别离是告诉栏卡片,桌面胶囊态,桌面胶囊态开展状态,锁屏卡片,胶囊态。 在上方官网的UI展现效果图上,胶囊态不光展现在桌面上,反对点击扩大为告诉卡进行操作,同时呈现在熄屏界面。熄屏页面的胶囊态文案不反对点击扩大为实时卡片。点击熄屏胶囊态,会进入锁屏卡片页面查看详情。 实况窗实质上是履约类音讯的推送展现。华为的官网定义为:帮忙用户聚焦工作,进行疾速查看和及时处理的告诉形体。实况窗具备实效性,阶段性和变动性的特点。实效性是指,整个告诉服务会继续一段时间,在用户不被动敞开的前提下,具备主动展现和完结的能力。实效性是指,告诉的音讯在一段时间内无效。告诉具备变动性,它是反对内容动静刷新。 2.成绩展现在理解了华为实况窗的背景和能力之后,咱们回到发布会上所展现的支付宝实时流动告诉。目前支付宝在最新10.5.10版本曾经具备了华为实况窗能力,目前次要接入利用场景在医疗方面,后续会凋谢更多的利用场景。那咱们先来观赏一下支付宝上的"国产灵动岛"的实在上机状态。 告诉栏状态: 左侧展现失常创立实时流动卡片; 右侧展现反对用户对卡片进行更多操作,包含设置和删除卡片。 桌面胶囊态: 左侧展现手机桌面左上角的胶囊文案; 两头侧展现点击胶囊态可开展告诉卡片; 右侧展现在胶囊态开展卡片后反对用户更多操作,包含设置和删除卡片。 锁屏状态: 展现用户按下电源键进入锁屏页面展告诉卡片(手机拍摄); 熄屏胶囊态: 手机界面进入息屏界面展现胶囊文案(手机拍摄); 上述所展现的仅为强调文案类模板在支付宝医疗场景下的UI成果,除了强调文案类模板外,华为还提供了多种展现模板利用于不同的场景,比如说针对打车或者外卖场景下的进度可视化类模板,针对体育赛事的赛事比分模板。 实况窗能够作为一个强揭示告诉渠道,对于重要信息能够多方位展现。如果思考到对于局部用户呈现适度打搅,实时流动同样反对缩小胶囊态文案透出,只呈现告诉栏中。 3.实现细节展现了这么多状态的实况窗UI,大家会比拟好奇怎么实现这样一套实况窗告诉呢? 方才在结尾曾经介绍了实况窗其实是一个告诉,实质上是Android告诉性能的扩大。HarmonyOS通过解析告诉的扩大参数,创立对应的模板并填充数据。对于接入性能的第三方利用而言,不须要绘制UI,只须要定制接口协议与模版参数,即可实现告诉流动卡片的创立与展现。另外咱们所看到的胶囊态其实不是一种独立的状态,它是卡片状态的扩大模式,依附于具体的卡片模板,这就是为什么在桌面通过点击胶囊态能够开展卡片。 以支付宝接入医疗场景的实况窗为例,简略介绍一下实现细节。 3.1解决链路在支付宝端内,实现一个实况窗告诉,波及到三个业务团队的单干,包含客户端团队,音讯平台服务端团队以及音讯Push团队,这三个团队的分工如下: 客户端团队:接管音讯平台下发的sync音讯(服务端与客户端之间的双向牢靠数据同步服务,包含sync上行和上行),创立实况告诉,也就是告诉“上岛”,并将卡片信息与token信息发送至音讯平台团队和Push团队; 音讯平台服务端团队:查问用户在服务场景下创立的履约订单,依照通信协议通过sync上行告诉到客户端,接管客户端sync上行的卡片信息; Push团队:接管客户端Rpc上报的token信息,并且作为上游,接管上游音讯平台传递来的卡片告诉更新信息。将更新参数发送至厂商云端,由厂商实现告诉卡片的更新以及删除操作; 具体的流程通过甬道图示意: 对于三方利用而言,不须要关怀UI绘制。对于客户端团队而言,实现告诉卡片的创立之后,无感后续的更新操作。由三方利用云端间接对接厂商云端,厂商平台接管更新数据后间接下发到对应的告诉卡片,实现状态与数据更新。下图展现的是告诉卡片更新状态下的数据流转: 3.2通信协议实况窗的通信协议次要包含两方面: 三方利用内的通信协议:数据由音讯平台上行到客户端,并在客户端创立告诉卡片后,将更新音讯发送上游Push平台。 三方利用外与厂商平台的通信协议:Push平台接管上游音讯平台的更新音讯后,将数据流转对接到厂商平台实现更新; 这两个通信协议其实也是告诉卡片生命周期流程。三方利用内的通信协议利用于实况窗告诉卡片的创立,三方利用与厂商平台的通信协议是利用于实况窗告诉卡片的更新。 3.2.1 利用内通信协议利用内的通信协议并不是独立的,而是继承自iOS灵动岛在支付宝端内的通信协议。为什么说是继承?为什么说是非独立? 继承是因为华为实况窗的协定是iOS灵动岛在支付宝端内通信协议的扩大版本,及在原有的协定根底上,扩大创立华为实时流动卡片的必须字段。整个协定的创立准则是:最大容纳准则,即能复用现有字段则复用现有字段,短少则通过团队协商后进行扩大。 非独立是指,整个通信协议的确定必须具备前瞻性,包含能满足将来反对华为更多品种模板的实时流动,也能满足后续其余国内厂商跟进同类“灵动岛”性能的需要。 这一套协定目前曾经反对iOS灵动岛以及华为实况窗,由客户端团队保护. 3.2.2 利用外通信协议利用外的通信协议次要是用于Push团队对接厂商进行告诉卡片更新操作。这个的简单在于,须要翻译利用内的通信协议。将翻译后的利用内的通信协议字段申请厂商接口,实现实况窗告诉卡片的更新。 如何翻译利用内的协定,次要是将音讯平台,客户端,Push三个团队的对接字段关联起来,做成一个三元组参数。 利用外的通信协议目前仍然由客户端团队保护。 3.3代码接入代码接入次要是以客户端的角度来形容。 3.3.1 创立卡片实况窗是在告诉的根底上附加了扩大参数,若是在反对实况窗的设施上发送,则零碎会依据这些扩大参数,将告诉依照实况窗的款式进行显示。 ...

September 25, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS如何使用异步并发能力进行开发

一、并发概述并发是指在同一时间段内,可能解决多个工作的能力。为了晋升利用的响应速度与帧率,以及避免耗时工作对主线程的烦扰,HarmonyOS 零碎提供了异步并发和多线程并发两种解决策略。 ● 异步并发是指异步代码在执行到肯定水平后会被暂停,以便在将来某个工夫点继续执行,这种状况下,同一时间只有一段代码在执行。 ● 多线程并发容许在同一时间段内同时执行多段代码。在主线程持续响应用户操作和更新 UI 的同时,后盾也能执行耗时操作,从而防止利用呈现卡顿。 并发能力在多种场景中都有利用,其中包含单次 I/O 工作、CPU 密集型工作、I/O 密集型工作和同步工作等。开发者能够依据不同的场景,抉择相应的并发策略进行优化和开发。 ArkTS 反对异步并发和多线程并发。 ● Promise 和 async/await 提供异步并发能力,实用于单次 I/O 工作的开发场景。具体请参见异步并发概述。 ● TaskPool 和 Worker 提供多线程并发能力,实用于 CPU 密集型工作、I/O 密集型工作和同步工作等并发场景。具体请参见多线程并发概述。 二、 应用异步并发能力进行开发1、 异步并发概述Promise 和 async/await 提供异步并发能力,是规范的 JS 异步语法。异步代码会被挂起并在之后继续执行,同一时间只有一段代码执行,实用于单次 I/O 工作的场景开发,例如一次网络申请、一次文件读写等操作。 异步语法是一种编程语言的个性,容许程序在执行某些操作时不用期待其实现,而是能够继续执行其余操作。 1.1 PromisePromise 是一种用于解决异步操作的对象,能够将异步操作转换为相似于同步操作的格调,以不便代码编写和保护。Promise 提供了一个状态机制来治理异步操作的不同阶段,并提供了一些办法来注册回调函数以解决异步操作的胜利或失败的后果。 Promise 有三种状态:pending(进行中)、fulfilled(已实现)和 rejected(已回绝)。Promise 对象创立后处于 pending 状态,并在异步操作实现后转换为 fulfilled 或 rejected 状态。 最根本的用法是通过构造函数实例化一个 Promise 对象,同时传入一个带有两个参数的函数,通常称为 executor 函数。executor 函数接管两个参数:resolve 和 reject,别离示意异步操作胜利和失败时的回调函数。例如,以下代码创立了一个 Promise 对象并模仿了一个异步操作: const promise = new Promise((resolve, reject) => { setTimeout(() => { const randomNumber = Math.random(); if (randomNumber > 0.5) { resolve(randomNumber); } else { reject(new Error('Random number is too small')); } }, 1000);});上述代码中,setTimeout 函数模仿了一个异步操作,并在 1 秒钟后随机生成一个数字。如果随机数大于 0.5,则执行 resolve 回调函数并将随机数作为参数传递;否则执行 reject 回调函数并传递一个谬误对象作为参数。 ...

September 22, 2023 · 2 min · jiezi

关于harmonyos:HarmonyOS创作激励计划启动助力技术创作突破边界

即日起推出 HarmonyOS 创作激励打算,胜利投稿并入选的文章将在 HarmonyOS 开发者公众号上线,9 大技术社区同步宣发,不仅有丰富稿酬,还有机会赢取创作奖品! 流动工夫即日起-2024 年 12 月 31 日,每季度依照流动规定评审奖项 流动面向用户对 HarmonyOS 怀抱激情的开发者 奖项设置 注:每季度评审,稿费和一二三等奖可叠加。 流动规定 1、 投稿标准● 投稿入口:harmonyos@huawei.com● 投稿邮件主题表明"【激励打算】+稿件名+作者+联系方式" 2、 知识产权您通过上述投稿入口投稿,即代表您批准不可撤销地收费、永恒受权华为及其关联公司在寰球范畴内复制、批改、信息网络流传及以其余任何华为认为适合的形式应用您投稿的内容。 3、 文章要求● 文章内容:文章需为 HarmonyOS 技术相干,字数 600+(不包含代码字符),内容通顺构造残缺,蕴含但不限于入手实际、技术解读、工具介绍以及开发案例等。● 原创要求:文章必须为原创,且需在 HarmonyOS 开发者公众号首发,禁止剽窃转载。● 其余要求:文章不得有广告营销,二维码引流内容,不得蕴含守法、有害信息,不得蕴含进犯第三方知识产权或其余合法权益的内容。 4、 评审规定● 投稿文章通过评审专家审核,决定是否合乎宣发规范。● 以季度为工夫单位进行评奖,依据公布一周后的公众号浏览量授予不同奖项。● 创作激励打算激励各位创作者投稿多篇参加流动,以文章记,奖项可叠加。● 稿酬与奖品,将在每季度流动文章全副公布并统计评审完后的一月内邮寄。● 对于多稿件发表的创作者,依照公布文章数量以及总浏览量,将授予额定神秘处分,期待惊喜吧! 进群交换 点击浏览原文,退出官网交换群参加写作交换。

September 21, 2023 · 1 min · jiezi

关于harmonyos:Harmony自定义页面请求与前端页面调试

一、自定义页面申请响应Web 组件反对在利用拦挡到页面申请后自定义响应申请能力。开发者通过onInterceptRequest()接口来实现自定义资源申请响应 。自定义申请能力能够用于开发者自定义 Web 页面响应、自定义文件资源响应等场景。 Web 网页上发动资源加载申请,应用层收到资源申请音讯。应用层结构本地资源响应音讯发送给 Web 内核。Web 内核解析应用层响应信息,依据此响应信息进行页面资源加载。 在上面的示例中,Web 组件通过拦挡页面申请“https://www.intercept.com/test.html”,在利用侧代码构建响应资源,实现自定义页面响应场景。 ● 前端页面 example.html 代码。 <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>example</title></head><body><!-- 页面资源申请 --><a href="https://www.intercept.com/test.html">intercept test!</a></body></html>● 利用侧代码。 // xxx.etsimport web_webview from '@ohos.web.webview';@Entry@Componentstruct WebComponent { controller: web_webview.WebviewController = new web_webview.WebviewController() responseResource: WebResourceResponse = new WebResourceResponse() // 开发者自定义响应数据 @State webData: string = '<!DOCTYPE html>\n' + '<html>\n'+ '<head>\n'+ '<title>intercept test</title>\n'+ '</head>\n'+ '<body>\n'+ '<h1>intercept ok</h1>\n'+ '</body>\n'+ '</html>' build() { Column() { Web({ src: $rawfile('example.html'), controller: this.controller }) .onInterceptRequest((event) => { console.info('url:' + event.request.getRequestUrl()); // 拦挡页面申请 if (event.request.getRequestUrl() !== 'https://www.intercept.com/test.html') { return null; } // 结构响应数据 this.responseResource.setResponseData(this.webData); this.responseResource.setResponseEncoding('utf-8'); this.responseResource.setResponseMimeType('text/html'); this.responseResource.setResponseCode(200); this.responseResource.setReasonMessage('OK'); return this.responseResource; }) } }}二、  应用 Devtools 工具调试前端页面Web 组件反对应用 DevTools 工具调试前端页面。DevTools 是一个 Web 前端开发调试工具,提供了调试挪动设施前端页面的能力。开发者通过setWebDebuggingAccess()接口开启 Web 组件前端页面调试能力,利用 DevTools 工具能够在 PC 端调试挪动设施上的前端网页。 ...

September 20, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS-管理页面跳转及浏览记录导航

历史记录导航使用者在前端页面点击网页中的链接时,Web 组件默认会主动关上并加载指标网址。以后端页面替换为新的加载链接时,会自动记录曾经拜访的网页地址。能够通过forward()和backward()接口向前/向后浏览上一个/下一个历史记录。 在上面的示例中,点击利用的按钮来触发前端页面的后退操作。 // xxx.etsimport web_webview from '@ohos.web.webview';@Entry@Componentstruct WebComponent { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); build() { Column() { Button('loadData') .onClick(() => { if (this.webviewController.accessBackward()) { this.webviewController.backward(); return true; } }) Web({ src: 'https://www.example.com/cn/', controller: this.webviewController}) } }}如果存在历史记录,accessBackward()接口会返回 true。同样,您能够应用accessForward()接口查看是否存在后退的历史记录。如果您不执行查看,那么当用户浏览到历史记录的开端时,调用forward()和backward()接口时将不执行任何操作。 页面跳转当点击网页中的链接须要跳转到利用内其余页面时,能够通过应用 Web 组件的onUrlLoadIntercept()接口来实现。 在上面的示例中,利用首页 Index.ets 加载前端页面 route.html,在前端 route.html 页面点击超链接,可跳转到利用的 ProfilePage.ets 页面。 ● 利用首页 index.ets 页面代码。 // index.etsimport web_webview from '@ohos.web.webview';import router from '@ohos.router';@Entry@Componentstruct WebComponent { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); build() { Column() { Web({ src: $rawfile('route.html'), controller: this.webviewController }) .onUrlLoadIntercept((event) => { let url: string = event.data as string; if (url.indexOf('native://') === 0) { // 跳转其余界面 router.pushUrl({ url:url.substring(9) }) return true; } return false; }) } }}● route.html 前端页面代码。 ...

September 19, 2023 · 2 min · jiezi

关于harmonyos:Harmony-Codelab样例弹窗基本使用

一、介绍本篇 Codelab 次要基于 dialog 和 button 组件,实现弹窗的几种自定义成果,具体成果有:  1.  正告弹窗,点击确认按钮弹窗敞开。2.  确认弹窗,点击勾销按钮或确认按钮,触发对应操作。3.  加载弹窗,展现加载中成果。4.  提醒弹窗,反对用户输出内容,点击勾销和确认按钮,触发对应操作。5.  进度条弹窗,展现进度条以及百分比。 相干概念dialog组件:自定义弹窗容器组件。button组件:按钮组件。 残缺示例gitee源码地址[](https://gitee.com/harmonyos/codelabs/tree/master/DialogDemo)源码下载弹窗根本应用(JS).zip 二、环境搭建咱们首先须要实现 HarmonyOS 开发环境搭建,可参照如下步骤进行。 软件要求DevEco Studio版本:DevEco Studio 3.1 Release。 HarmonyOS SDK版本:API version 9。 硬件要求设施类型:华为手机或运行在 DevEco Studio 上的华为手机设施模拟器。HarmonyOS 零碎:3.1.0 Developer Release。 环境搭建1.  装置 DevEco Studio,详情请参考下载和装置软件。2.  设置 DevEco Studio 开发环境,DevEco Studio 开发环境须要依赖于网络环境,须要连贯上网络能力确保工具的失常应用,能够依据如下两种状况来配置开发环境:● 如果能够间接拜访 Internet,只需进行下载HarmonyOS SDK操作。● 如果网络不能间接拜访 Internet,须要通过代理服务器才能够拜访,请参考配置开发环境。3.  开发者能够参考以下链接,实现设施调试的相干配置:● 应用真机进行调试● 应用模拟器进行调试 三、代码构造解读本篇 Codelab 只对外围代码进行解说,对于残缺代码,咱们会在源码下载或 gitee 中提供。 ├──entry/src/main/js // 代码区│ └──MainAbility│ ├──common│ │ └──images // 图片资源│ ├──i18n // 国际化中英文│ │ ├──en-US.json │ │ └──zh-CN.json │ ├──pages│ │ └──index│ │ ├──index.css // 页面整体布局以及弹窗款式│ │ ├──index.hml // 自定义弹窗展现页面│ │ └──index.js // 弹窗显示敞开逻辑以及动画逻辑│ └──app.js // 程序入口└──entry/src/main/resources // 利用资源目录四、构建利用页面界面次要包含按钮列表页和自定义弹窗两局部,咱们能够通过在 dialog 标签中增加自定义组件设置弹窗,具体成果如图所示: ...

September 19, 2023 · 2 min · jiezi

关于harmonyos:HiAI-Foundation助力端侧音视频AI能力高性能低功耗释放云侧成本

过来三年是端侧AI高速倒退的几年,华为在2020年预言了端侧AI的倒退潮流,2021年通过提供端云协同的形式使咱们的HiAI Foundation应用性更进一个台阶,2022年提供视频超分端到端的解决方案,在2023HDC大会上,HiAI Foundation基于硬件能力的凋谢,提供更多场景高效能的解决方案。 华为HiAI Foundation提供了高性能AI算子和丰盛的AI个性的接口,App间接对应HiAI Foundation的DDK。往年残缺反对了HarmonyOS NEXT,开发者无需批改任何代码,只需依照HarmonyOS NEXT的要求从新编译即可运行。同时,在开发者联盟网站有HarmonyOS NEXT领导文档,在Gitee上也开源了对应的Demo,升高大家的集成老本。 往年,华为在原有的根底上,拓展了更多端侧AI场景解决方案。 华为HiAI Foundation是基于硬件翻新架构的能力凋谢,构建了一个高性能的NPU、CPU、GPU算子,同时提供整网交融、AIPP软化预处理、算子搜寻工具、异构计算等多元的根底能力,在硬件翻新架构和多元竞争根底的能力上,提供生态凋谢机制,在生态凋谢机制上提供对用户凋谢的接口DDK工具链、模型轻量化、算子库动静降级、开源等等机制。 华为HiAI Foundation次要由以下几个局部形成,首先是HiAI Foundation DDK推理减速平台,它次要实现与下层推理框架的接入,使开发者能够屏蔽底层硬件,可能更加聚焦于模型成果的优化。第二局部是异构计算HCL平台,它次要是使能各个硬件,比方NPU、CPU、GPU。第三局部是提供对应的工具链,包含模型转换工具链、异构调优工具链。同时咱们也提供了对立的API,通过一次开发能够做到赋能多状态的设施硬件上运行,并且华为HiAI Foundation能够与HarmonyOS实时交融。 上面以典型AI场景为例,从部署的角度来摸索一下华为HiAI Foundation是如何实现这些挑战,并最终实现这些场景的落地。 视觉类减速计划人像宰割 咱们晓得人像宰割通常用于视频中的背景替换、长短视频的弹幕穿人玩法等。华为HiAI Foundation通过人像宰割,通过AIPP软化预处理指令、模型量化,使得人像宰割达到性能和功耗的业务要求。从视频解码和开明预览流到AIPP推理和GPU渲染,有多个过程参加,华为HiAI Foundation不仅要进行推理,还要实现上下游的深度协同。 视频流和凋谢预览帧到模型,以人像宰割为例,人像宰割要求的输出是RGB格局,并且输出要求是固定的尺寸,视频解码帧和预览流进去的数据,要求反对图像预处理的指令,并且把它软化到NPU外面,所以人像宰割提供了包含图片缩放resize、图片旋转rotation、色域转换color space convert的能力。基于华为实验室测试后果,实现性能晋升20%,模型大小放大75%,精度损失1%以内,性能晋升19%。 第二局部是模型在NPU上的高效算子推理,推理完结之后将后果送到GPU上做渲染。在传统计划中,NPU和GPU通常是操作两块不同的内存,华为HiAI Foundation提供了零拷贝的接口,将NPU和GPU在同一块内存上操作,并且在格局上放弃严格统一,通过多IP协同+AIPP实现高效人像宰割计算。 在端侧部署过程中提供了模型可视化+Profiling工具,通过模型可视化理解HiAI Foundation构造,通过Profiling晓得IP的散布,包含算子在NPU和GPU的推理工夫,综合起来通过可视化工具和Profiling工具设计出零碎敌对的构造,设计性能最佳的模型。 通过Profiling工具理解到模型算子的性能不够敌对,而后把它反馈到HiAI Foundation,咱们在反对好这些算子之后,通过端云协同的形式疾速推送到用户手中,使用户可能尽快上线业务。本次华为在端云协同助力性能优化疾速降级方面做了全面的降级,开发者无SDK就能够集成,相比原来繁琐的集成要求,能够做到无感集成。 语音类的减速计划语音辨认 端侧部署语音辨认实时出字、响应快,在端侧执行能够保障用户的隐衷,此外华为能做到在NPU上执行,稳定性高,并且能够升高云侧的资源部署老本。在语音辨认这一块,HiAI Foundation反对的是端到端的Transformer模型,全副在云端推理。基于华为实验室测试后果,模型量化模型大小放大74%,精度损失1%以内。 模型如图所示,反对Transformer模型,开发者能够依据本身的业务,依据性能和泛化性来进行定制,也能够实现高效的算子交融。 将原来须要频繁和内存交互的指令交融成一个大的算子,通过对这些要害构造进行算子交融,总共带来了60%的功耗收益,将右边很多小算子组成的构造交融成一个大算子,防止这些小算子频繁和内存进行交互,从而晋升了运算效率。 在端侧部署的过程中,存储空间也是开发者们关注的问题,心愿用更小的存储空间来实现更多更强的能力,所以华为提供量化工具链,通过量化工具链能够量化出更玲珑、更灵便的模型。以人像宰割和语音辨认为例,基于华为实验室测试后果,它们的存储大小可能相比32位浮点缩小70%以上,精度WER指标相比32浮点小于1%,相应的功率也有肯定的晋升。 在端侧AI部署中会波及到硬件、软件和AI算法,所以华为通过开源的形式来减速业务,通过更多形式灵便部署。目前凋谢了推理源码的开源,通过开源能够做到和App、第三方深度学习框架对接,同时能够基于本身的需要做灵便的定制裁剪,做到开发灵便,通过这些开源平台能和开发者沟通更便捷。通过这些开源,开发者能够疾速下载、编译,即可在华为手机上用NPU做推理,更高效集成业务。 将来,华为会摸索Transformer模型更加泛化、更高能效的场景化解决方案,同时在端云协同上也会摸索更多更高性能场景的能力反对,也会通过ModelZoo提供更多场景NPU敌对的模型构造,用户能够设计更加NPU敌对的模型构造。 理解更多详情>> 拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

September 12, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS应用开发资源分类与访问

利用开发过程中,常常须要用到色彩、字体、间距、图片等资源,在不同的设施或配置中,这些资源的值可能不同。 ● 利用资源:借助资源文件能力,开发者在利用中自定义资源,自行治理这些资源在不同的设施或配置中的体现。 ● 系统资源:开发者间接应用零碎预置的资源定义(即分层参数,同一资源 ID 在设施类型、深浅色等不同配置下有不同的取值)。 资源分类resources 目录利用开发中应用的各类资源文件,须要放入特定子目录中存储管理。resources 目录包含三大类目录,一类为 base 目录,一类为限定词目录,还有一类为 rawfile 目录。stage 模型多工程状况下共有的资源文件放到 AppScope 下的 resources 目录。 base 目录默认存在,而限定词目录须要开发者自行创立。利用应用某资源时,零碎会依据以后设施状态优先从相匹配的限定词目录中寻找该资源。只有当 resources 目录中没有与设施状态匹配的限定词目录,或者在限定词目录中找不到该资源时,才会去 base 目录中查找。rawfile 是原始文件目录,不会依据设施状态去匹配不同的资源。资源目录示例: resources |---base | |---element | | |---string.json | |---media | | |---icon.png | |---profile | | |---test_profile.json |---en_US // 默认存在的目录,设施语言环境是美式英文时,优先匹配此目录下资源 | |---element | | |---string.json | |---media | | |---icon.png | |---profile | | |---test_profile.json |---zh_CN // 默认存在的目录,设施语言环境是简体中文时,优先匹配此目录下资源 | |---element | | |---string.json | |---media | | |---icon.png | |---profile | | |---test_profile.json |---en_GB-vertical-car-mdpi // 自定义多限定词目录示例,由开发者创立 | |---element | | |---string.json | |---media | | |---icon.png | |---profile | | |---test_profile.json |---rawfile // 其余类型文件,原始文件模式保留,不会被集成到resources.index文件中。文件名可自定义。表 1 resources 目录分类 ...

September 12, 2023 · 2 min · jiezi

关于harmonyos:建议收藏Harmony应用配置文件概述Stage模型

一. 利用配置文件每个利用我的项目必须在我的项目的代码目录下退出配置文件,这些配置文件会向编译工具、操作系统和利用市场提供利用的根本信息。 在基于 Stage 模型开发的利用我的项目代码下,都存在一个 app.json5 及一个或多个 module.json5 这两种配置文件。 app.json5次要蕴含以下内容: ●利用的全局配置信息,蕴含利用的包名、开发厂商、版本号等根本信息。 ●特定设施类型的配置信息。 module.json5次要蕴含以下内容: ●Module 的根本配置信息,例如 Module 名称、类型、形容、反对的设施类型等根本信息。 ●利用组件信息,蕴含 UIAbility 组件和 ExtensionAbility 组件的形容信息。 ●利用运行过程中所需的权限信息。 二. app.json5 配置文件先通过一个示例,整体认识一下 app.json5 配置文件。 { "app": { "bundleName": "com.application.myapplication", "vendor": "example", "versionCode": 1000000, "versionName": "1.0.0", "icon": "$media:app_icon", "label": "$string:app_name", "description": "$string:description_application", "minAPIVersion": 9, "targetAPIVersion": 9, "apiReleaseType": "Release", "debug": false, "car": { "minAPIVersion": 8, } },}app.json5 配置文件蕴含以下标签。表 1 app.json5 文件配置标签阐明 三. module.json5 配置文件先通过一个示例,整体认识一下module.json5配置文件。 ...

September 11, 2023 · 4 min · jiezi

关于harmonyos:鸿蒙应用开发之容器组件

一、概述一个丰盛的页面通常是由很多根底组件组成的,那么咱们如何能力让这些组件井井有条地在页面上布局呢?这就须要借助容器组件来实现。 容器组件是一种比拟非凡的组件,它能够蕴含其余的组件,而且依照肯定的法则布局,帮忙开发者生成精美的页面。容器组件除了搁置根底组件外,也能够搁置容器组件,通过多层布局的嵌套,能够布局出更丰盛的页面。 ArkTS为咱们提供了丰盛的容器组件来布局页面,本文将以构建登录页面为例,介绍Column和Row组件的属性与应用。   二、组件介绍2.1 布局容器概念线性布局容器示意依照垂直方向或者程度方向排列子组件的容器,ArkTS提供了Column和Row容器来实现线性布局。 Column示意沿垂直方向布局的容器。Row示意沿程度方向布局的容器。  2.2 主轴和穿插轴概念在布局容器中,默认存在两根轴,别离是主轴和穿插轴,这两个轴始终是互相垂直的。不同的容器中主轴的方向不一样的。 主轴:在Column容器中的子组件是依照从上到下的垂直方向布局的,其主轴的方向是垂直方向;在Row容器中的组件是依照从左到右的程度方向布局的,其主轴的方向是程度方向。 穿插轴:与主轴垂直相交的轴线,如果主轴是垂直方向,则穿插轴就是程度方向;如果主轴是程度方向,则穿插轴是垂直方向。 2.3 属性介绍理解布局容器的主轴和穿插轴,次要是为了让大家更好地了解子组件在主轴和穿插轴的排列形式。接下来,咱们将具体解说Column和Row容器的两个属性justifyContent和alignItems。 属性名称形容justifyContent设置子组件在主轴方向上的对齐格局。alignItems设置子组件在穿插轴方向上的对齐格局。子组件在主轴方向上的对齐应用justifyContent属性来设置,其参数类型是FlexAlign。FlexAlign定义了以下几种类型: 主轴方向的对齐(justifyContent)子组件在主轴方向上的对齐应用justifyContent属性来设置,其参数类型是FlexAlign。FlexAlign定义了以下几种类型: Start:元素在主轴方向首端对齐,第一个元素与行首对齐,同时后续的元素与前一个对齐。Center:元素在主轴方向核心对齐,第一个元素与行首的间隔以及最初一个元素与行尾间隔雷同。End:元素在主轴方向尾部对齐,最初一个元素与行尾对齐,其余元素与后一个对齐。SpaceBetween:元素在主轴方向平均调配弹性元素,相邻元素之间间隔雷同。 第一个元素与行首对齐,最初一个元素与行尾对齐。SpaceAround:元素在主轴方向平均调配弹性元素,相邻元素之间间隔雷同。 第一个元素到行首的间隔和最初一个元素到行尾的间隔是相邻元素之间间隔的一半。SpaceEvenly:元素在主轴方向等间距布局,无论是相邻元素还是边界元素到容器的间距都一样。穿插轴方向的对齐(alignItems)子组件在穿插轴方向上的对齐形式应用alignItems属性来设置。Column容器的主轴是垂直方向,穿插轴是程度方向,其参数类型为HorizontalAlign(程度对齐),HorizontalAlign定义了以下几种类型: Start:设置子组件在程度方向上依照起始端对齐。Center(默认值):设置子组件在程度方向上居中对齐。End:设置子组件在程度方向上依照末端对齐。Row容器的主轴是程度方向,穿插轴是垂直方向,其参数类型为VerticalAlign(垂直对齐),VerticalAlign定义了以下几种类型: Top:设置子组件在垂直方向上居顶部对齐。Center(默认值):设置子组件在竖直方向上居中对齐。Bottom:设置子组件在竖直方向上居底部对齐。2.4 接口介绍接下来,咱们介绍Column和Row容器的接口。 容器组件接口ColumnColumn(value?:{space?: stringnumber})RowRow(value?:{space?: stringnumber})Column和Row容器的接口都有一个可选参数space,示意子组件在主轴方向上的间距。 三、根本应用咱们来具体解说如何高效的应用Column和Row容器组件来构建这个登录页面。 当咱们从设计同学那拿到一个页面设计图时,咱们须要对页面进行拆解,先确定页面的布局,再剖析页面上的内容别离应用哪些组件来实现。 咱们仔细分析这个登录页面。在动态布局中,组件整体是从上到下布局的,因而构建该页面能够应用Column来构建。在此基础上,咱们能够看到有局部内容在程度方向上由几个根底组件形成,例如页面两头的短信验证码登录与遗记明码以及页面最下方的其余形式登录,那么构建这些内容的时候,能够在Column组件中嵌套Row组件,继而在Row组件中实现程度方向的布局。 根据上述页面拆解,在Column容器里,顺次是Image、Text、TextInput、Button等根底组件,还有两组组件是应用Row容器组件来实现的,次要代码如下: @Entry@Componentexport struct LoginPage { build() { Column() { Image($r('app.media.logo')) ... Text($r('app.string.login_page')) ... Text($r('app.string.login_more')) ... TextInput({ placeholder: $r('app.string.account') }) ... TextInput({ placeholder: $r('app.string.password') }) ... Row() { Text($r(…)) Text($r(…)) } Button($r('app.string.login'), { type: ButtonType.Capsule, stateEffect: true }) ... Row() { this.imageButton($r(…)) this.imageButton($r(…)) this.imageButton($r(…)) } ... } ... }}咱们具体看一下应用Row容器的两组组件。两个文本组件展现的内容是按程度方向布局的,应用两端对齐的形式。这里咱们应用Row容器组件,并且须要配置主轴上(程度方向)的对齐格局justifyContent为FlexAlign.SpaceBetween(两端对齐)。 ...

September 11, 2023 · 1 min · jiezi

关于harmonyos:鸿蒙学习笔记Stage模型服务卡片

「鸿蒙学习笔记」Stage模型--服务卡片服务卡片(以下简称“卡片”)是一种界面展现模式,能够将利用的重要信息或操作前置到卡片,以达到服务中转、缩小体验层级的目标。卡片罕用于嵌入到其余利用(以后卡片应用方只支持系统利用,如桌面)中作为其界面显示的一部分,并反对拉起页面、发送音讯等根底的交互性能。 服务卡片架构: 卡片的基本概念: 卡片应用方:如上图中的桌面,显示卡片内容的宿主利用,管制卡片在宿主中展现的地位。利用图标:利用入口图标,点击后可拉起利用过程,图标内容不反对交互。卡片:具备不同规格大小的界面展现,卡片的内容能够进行交互,如实现按钮进行界面的刷新、利用的跳转等。卡片提供方:蕴含卡片的利用,提供卡片的显示内容、控件布局以及控件点击解决逻辑。FormExtensionAbility:卡片业务逻辑模块,提供卡片创立、销毁、刷新等生命周期回调。卡片页面:卡片UI模块,蕴含页面控件、布局、事件等显示和交互信息。卡片的常见应用步骤如下: 卡片运行机制ArkTS卡片实现原理: 卡片应用方:显示卡片内容的宿主利用,管制卡片在宿主中展现的地位,以后仅零碎利用能够作为卡片应用方。卡片提供方:提供卡片显示内容的利用,管制卡片的显示内容、控件布局以及控件点击事件。卡片治理服务:用于管理系统中所增加卡片的常驻代理服务,提供formProvider接口能力,同时提供卡片对象的治理与应用以及卡片周期性刷新等能力。卡片渲染服务:用于治理卡片渲染实例,渲染实例与卡片应用方上的卡片组件一一绑定。卡片渲染服务运行卡片页面代码widgets.abc进行渲染,并将渲染后的数据发送至卡片应用方对应的卡片组件。ArkTS卡片渲染服务运行原理:ArkTS卡片反对在卡片中运行逻辑代码,为确保ArkTS卡片产生问题后不影响卡片应用方利用的应用,ArkTS卡片新增了卡片渲染服务用于运行卡片页面代码widgets.abc,卡片渲染服务由卡片治理服务治理。 卡片应用方的每个卡片组件都对应了卡片渲染服务里的一个渲染实例,同一利用提供方的渲染实例运行在同一个虚拟机运行环境中,不同利用提供方的渲染实例运行在不同的虚拟机运行环境中,通过虚拟机运行环境隔离不同利用提供方卡片之间的资源与状态。 开发过程中须要留神的是globalThis对象的应用,雷同利用提供方的卡片globalThis对象是同一个,不同利用提供方的卡片globalThis对象是不同的。 ArkTS卡片的劣势: 新增了动效的能力:ArkTS卡片凋谢了属性动画和显式动画的能力,使卡片的交互更加敌对。新增了自定义绘制的能力:ArkTS卡片凋谢了Canvas画布组件,卡片能够应用自定义绘制的能力构建更多样的显示和交互成果。容许卡片中运行逻辑代码:凋谢逻辑代码运行后很多业务逻辑能够在卡片外部自闭环,拓宽了卡片的业务实用场景。ArkTS卡片的束缚: 不反对加载so。不反对应用native语言开发。仅反对申明式范式的局部组件、事件、动效、数据管理、状态治理和API能力。卡片的事件处理和应用方的事件处理是独立的,倡议在应用方反对左右滑动的场景下卡片内容不要应用左右滑动性能的组件,以防手势抵触影响交互体验。暂不反对导入模块。暂不反对极速预览。暂不反对断点调试能力。暂不反对Hot Reload热重载。卡片相干模块 FormExtensionAbility:卡片扩大模块,提供卡片创立、销毁、刷新等生命周期回调。FormExtensionContext:FormExtensionAbility的上下文环境,提供FormExtensionAbility具备的接口和能力。formProvider:提供卡片提供方相干的接口能力,可通过该模块提供接口实现更新卡片、设置卡片更新工夫、获取卡片信息、申请公布卡片等。formInfo:提供了卡片信息和状态等相干类型和枚举。formBindingData:提供卡片数据绑定的能力,包含FormBindingData对象的创立、相干信息的形容。页面布局(Card.ets):提供申明式范式的UI接口能力。ArkTS卡片特有能力:postCardAction用于卡片外部和提供方利用间的交互,仅在卡片中能够调用。ArkTS卡片能力列表:列举了能在ArkTS卡片中应用的API、组件、事件、属性和生命周期调度。卡片配置:蕴含FormExtensionAbility的配置和卡片的配置在module.json5配置文件中的extensionAbilities标签下,配置FormExtensionAbility相干信息。在resources/base/profile/目录下的form_config.json配置文件中,配置卡片(WidgetCard.ets)相干信息。创立卡片创立卡片: ArkTS卡片创立实现后,工程中会新增如下卡片相干文件:卡片生命周期管理文件(EntryFormAbility.ts)、卡片页面文件(WidgetCard.ets)和卡片配置文件(form_config.json)。 配置卡片卡片相干的配置文件次要蕴含FormExtensionAbility的配置和卡片的配置两局部: 卡片须要在module.json5配置文件中的extensionAbilities标签下,配置FormExtensionAbility相干信息。FormExtensionAbility须要填写metadata元信息标签,其中键名称为固定字符串“ohos.extension.form”,资源为卡片的具体配置信息的索引。 { "module": { ... "extensionAbilities": [ { "name": "EntryFormAbility", "srcEntrance": "./ets/entryformability/EntryFormAbility.ts", "label": "$string:EntryFormAbility_label", "description": "$string:EntryFormAbility_desc", "type": "form", "metadata": [ { "name": "ohos.extension.form", "resource": "$profile:form_config" } ] } ] }}卡片的具体配置信息。在上述FormExtensionAbility的元信息(“metadata”配置项)中,能够指定卡片具体配置信息的资源索引。例如当resource指定为$profile:form_config时,会应用开发视图的resources/base/profile/目录下的form_config.json作为卡片profile配置文件。 { "forms": [ { "name": "widget", "description": "This is a service widget.", "src": "./ets/widget/pages/WidgetCard.ets", "uiSyntax": "arkts", "window": { "designWidth": 720, "autoDesignWidth": true }, "colorMode": "auto", "isDefault": true, "updateEnabled": true, "scheduledUpdateTime": "10:30", "updateDuration": 1, "defaultDimension": "2*2", "supportDimensions": [ "2*2" ] } ]}卡片生命周期治理创立ArkTS卡片,需实现FormExtensionAbility生命周期接口。 ...

September 7, 2023 · 6 min · jiezi

关于harmonyos:鸿蒙学习笔记Stage模型ExtensionAbility组件

「鸿蒙学习笔记」Stage模型--ExtensionAbility组件ExtensionAbility组件是基于特定场景提供的利用组件,以便满足更多的应用场景。 每一个具体场景对应一个ExtensionAbilityType,各类型的ExtensionAbility组件均由相应的零碎服务对立治理,例如InputMethodExtensionAbility组件由输入法治理服务对立治理。以后反对的ExtensionAbility类型有: FormExtensionAbility:FORM类型的ExtensionAbility组件,用于提供服务卡片场景相干能力。WorkSchedulerExtensionAbility:WORK_SCHEDULER类型的ExtensionAbility组件,用于提供提早工作注册、勾销、查问的能力。参考https://developer.harmonyos.com/cn/docs/documentation/doc-gui...

September 7, 2023 · 1 min · jiezi

关于harmonyos:鸿蒙学习笔记Stage模型UIAbility

「鸿蒙学习笔记」Stage模型--UIAbility概述UIAbility组件是一种蕴含UI界面的利用组件,次要用于和用户交互。 UIAbility组件是系统调度的根本单元,为利用提供绘制界面的窗口;一个UIAbility组件中能够通过多个页面来实现一个功能模块。每一个UIAbility组件实例,都对应于一个最近工作列表中的工作。 配置为使利用可能失常应用UIAbility,须要在 module.json5 配置文件的 abilities标签 中申明UIAbility的名称、入口、标签等相干信息。 { "module": { // ... "abilities": [ { "name": "EntryAbility", // UIAbility组件的名称 "srcEntrance": "./ets/entryability/EntryAbility.ts", // UIAbility组件的代码门路 "description": "$string:EntryAbility_desc", // UIAbility组件的形容信息 "icon": "$media:icon", // UIAbility组件的图标 "label": "$string:EntryAbility_label", // UIAbility组件的标签 "startWindowIcon": "$media:icon", // UIAbility组件启动页面图标资源文件的索引 "startWindowBackground": "$color:start_window_background", // UIAbility组件启动页面背景色彩资源文件的索引 // ... } ] }}生命周期 启动模式针对不同的业务场景,零碎提供了三种启动模式: singleton(单实例模式)standard(规范实例模式)specified(指定实例模式)singleton(单实例模式)singleton启动模式为单实例模式,也是默认状况下的启动模式。 每次调用startAbility()办法时,如果利用过程中该类型的UIAbility实例曾经存在,则复用零碎中的UIAbility实例。零碎中只存在惟一一个该UIAbility实例,即在最近工作列表中只存在一个该类型的UIAbility实例。 利用的UIAbility实例已创立,该UIAbility配置为单实例模式,再次调用startAbility()办法启动该UIAbility实例,此时只会进入该UIAbility的onNewWant()回调,不会进入其onCreate()和onWindowStageCreate()生命周期回调。在module.json5配置文件中的"launchType"字段配置为"singleton"即可。 { "module": { // ... "abilities": [ { "launchType": "singleton", // ... } ] }}standard(规范实例模式)standard启动模式为规范实例模式,每次调用startAbility()办法时,都会在利用过程中创立一个新的该类型UIAbility实例。即在最近工作列表中能够看到有多个该类型的UIAbility实例。这种状况下能够将UIAbility配置为standard(规范实例模式)。 在module.json5配置文件中的"launchType"字段配置为"standard"即可。 { "module": { // ... "abilities": [ { "launchType": "standard", // ... } ] }}specified(指定实例模式)specified启动模式为指定实例模式,针对一些非凡场景应用(例如文档利用中每次新建文档心愿都能新建一个文档实例,反复关上一个已保留的文档心愿关上的都是同一个文档实例)。 ...

September 7, 2023 · 5 min · jiezi

关于harmonyos:鸿蒙学习笔记Stage模型概述

「鸿蒙学习笔记」Stage模型--概述Stage模型:HarmonyOS 3.1 Develper Preview版本开始新增的模型,是目前主推且会长期演进的模型。在该模型中,因为提供了AbilityStage、WindowStage等类作为利用组件和Window窗口的“舞台”,因而称这种利用模型为Stage模型。 设计思维Stage模型之所以成为主推模型,源于其设计思维。Stage模型的设计基于如下出发点。 为简单利用而设计 多个利用组件共享同一个ArkTS引擎(运行ArkTS语言的虚拟机)实例,利用组件之间能够不便的共享对象和状态,同时缩小简单利用运行对内存的占用。采纳面向对象的开发方式,使得简单利用代码可读性高、易维护性好、可扩展性强。反对多设施和多窗口状态 利用组件治理和窗口治理在架构层面解耦: 便于系统对利用组件进行裁剪(无屏设施可裁剪窗口)。便于零碎扩大窗口状态。在多设施(如桌面设施和挪动设施)上,利用组件可应用同一套生命周期。均衡利用能力和零碎管控老本 Stage模型从新定义利用能力的边界,均衡利用能力和零碎管控老本。 提供特定场景(如卡片、输入法)的利用组件,以便满足更多的应用场景。规范化后盾过程治理:为保障用户体验,Stage模型对后盾利用过程进行了有序治理,应用程序不能随便驻留在后盾,同时利用后盾行为受到严格管理,避免歹意利用行为。概述 UIAbility组件和ExtensionAbility组件Stage模型提供UIAbility和ExtensionAbility两种类型的组件,这两种组件都有具体的类承载,反对面向对象的开发方式。 UIAbility组件是一种蕴含UI界面的利用组件,次要用于和用户交互。例如,图库类利用能够在UIAbility组件中展现图片瀑布流,在用户抉择某个图片后,在新的页面中展现图片的具体内容。同时用户能够通过返回键返回到瀑布流页面。UIAbility的生命周期只蕴含创立/销毁/前台/后盾等状态,与显示相干的状态通过WindowStage的事件裸露给开发者。 ExtensionAbility组件是一种面向特定场景的利用组件。 WindowStage每个UIAbility类实例都会与一个WindowStage类实例绑定,该类提供了利用过程内窗口管理器的作用。它蕴含一个主窗口。也就是说UIAbility通过WindowStage持有了一个窗口,该窗口为ArkUI提供了绘制区域。 Context在Stage模型上,Context及其派生类向开发者提供在运行期能够调用的各种能力。UIAbility组件和各种ExtensionAbility派生类都有各自不同的Context类,他们都继承自基类Context,然而各自又依据所属组件,提供不同的能力。 AbilityStage每个Entry类型或者Feature类型的HAP在运行期都有一个AbilityStage类实例,当HAP中的代码首次被加载到过程中的时候,零碎会先创立AbilityStage实例。每个在该HAP中定义的UIAbility类,在实例化后都会与该实例产生关联。开发者能够应用AbilityStage获取该HAP中UIAbility实例的运行时信息。 利用与组件配置在基于Stage模型开发的利用我的项目代码下,都存在一个 app.json5 及一个或多个 module.json5 这两种配置文件。 app.json5次要蕴含以下内容: 利用的全局配置信息,蕴含利用的包名、开发厂商、版本号等根本信息。特定设施类型的配置信息。module.json5次要蕴含以下内容: Module的根本配置信息,例如Module名称、类型、形容、反对的设施类型等根本信息。利用组件信息,蕴含UIAbility组件和ExtensionAbility组件的形容信息。利用运行过程中所需的权限信息。参考https://developer.harmonyos.com/cn/docs/documentation/doc-gui...

September 7, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS实现几种常见图片点击效果

一. 样例介绍HarmonyOS 提供了罕用的图片、图片帧动画播放器组件,开发者能够依据理论场景和开发需要,实现不同的界面交互成果,包含:点击暗影成果、点击切换状态、点击动画成果、点击切换动效。 相干概念● image组件:图片组件,用于图片资源的展现。● image-animator组件:帧动画播放器,用以播放一组图片,能够设置播放工夫、次数等参数。● 通用事件:事件绑定在组件上,当组件达到事件触发条件时,会执行 JS 中对应的事件回调函数,实现页面 UI 视图和页面 JS 逻辑层的交互。 残缺示例gitee源码地址 二.环境搭建咱们首先须要实现 HarmonyOS 开发环境搭建,可参照如下步骤进行。 软件要求● DevEco Studio版本:DevEco Studio 3.1 Release 及以上版本。● HarmonyOS SDK版本:API version 9 及以上版本。 硬件要求● 设施类型:华为手机或运行在 DevEco Studio 上的华为手机设施模拟器。● HarmonyOS 零碎:3.1.0 Developer Release 及以上版本。 环境搭建1.  装置 DevEco Studio,详情请参考下载和装置软件。2.  设置 DevEco Studio 开发环境,DevEco Studio 开发环境须要依赖于网络环境,须要连贯上网络能力确保工具的失常应用,能够依据如下两种状况来配置开发环境:如果能够间接拜访 Internet,只需进行下载HarmonyOS SDK操作。a.  如果网络不能间接拜访 Internet,须要通过代理服务器才能够拜访,请参考配置开发环境。3.  开发者能够参考以下链接,实现设施调试的相干配置:● 应用真机进行调试● 应用模拟器进行调试 三.代码构造解读本篇 Codelab 只对外围代码进行解说,对于残缺代码,咱们会在源码下载或 gitee 中提供。 ├──entry/src/main/js // 代码区│ └──MainAbility│ ├──common│ │ ├──constants│ │ │ └──commonConstants.js // 帧动画数据常量│ │ └──images│ ├──i18n // 中英文 │ │ ├──en-US.json │ │ └──zh-CN.json │ └──pages│ └──index│ ├──index.css // 首页款式文件 │ ├──index.hml // 首页布局文件│ └──index.js // 首页脚本文件└──entry/src/main/resources // 利用资源目录四.界面布局本示例应用卡片布局,将四种实现以四张卡片的模式出现在主界面。每张卡片都应用图文联合的形式直观地向开发者展现所实现成果。 ...

September 7, 2023 · 2 min · jiezi

关于harmonyos:鸿蒙应用程序入口UIAbility

「鸿蒙」应用程序入口-UIAbilityUIAbility是一种蕴含用户界面的利用组件,次要用于和用户进行交互。UIAbility也是系统调度的单元,为利用提供窗口在其中绘制界面。 每一个UIAbility实例,都对应于一个最近工作列表中的工作。 一个利用能够有一个UIAbility,也能够有多个UIAbility,如下图所示。例如浏览器利用能够通过一个UIAbility联合多页面的模式让用户进行的搜寻和浏览内容;而聊天利用减少一个“外卖性能”的场景,则能够将聊天利用中“外卖性能”的内容独立为一个UIAbility,当用户关上聊天利用的“外卖性能”,查看外卖订单详情,此时有新的聊天音讯,即能够通过最近工作列表切换回到聊天窗口持续进行聊天对话。 一个UIAbility能够对应于多个页面,倡议将一个独立的功能模块放到一个UIAbility中,以多页面的模式出现。例如新闻利用在浏览内容的时候,能够进行多页面的跳转应用。 UIAbility内页面的跳转和数据传递UIAbility的数据传递包含有UIAbility内页面的跳转和数据传递、UIAbility间的数据跳转和数据传递。 页面间的导航能够通过页面路由router模块来实现。页面路由模块依据页面url找到指标页面,从而实现跳转。通过页面路由模块,能够应用不同的url拜访不同的页面,包含跳转到UIAbility内的指定页面、用UIAbility内的某个页面替换以后页面、返回上一页面或指定的页面等。具体应用办法请参见ohos.router (页面路由)。 页面跳转和参数接管在应用页面路由之前,须要先导入router模块,如下代码所示。 import router from '@ohos.router';页面跳转的几种形式,依据须要抉择一种形式跳转即可。 形式一:API9及以上,router.pushUrl() 办法新增了mode参数,能够将mode参数配置为 router.RouterMode.Single单实例模式 和 router.RouterMode.Standard多实例模式。在单实例模式下:如果指标页面的url在页面栈中曾经存在同url页面,离栈顶最近同url页面会被挪动到栈顶,挪动后的页面为新建页,原来的页面依然存在栈中,页面栈的元素数量不变;如果指标页面的url在页面栈中不存在同url页面,按多实例模式跳转,页面栈的元素数量会加1。阐明当页面栈的元素数量较大或者超过32时,能够通过调用router.clear()办法革除页面栈中的所有历史页面,仅保留以后页面作为栈顶页面。router.pushUrl({ url: 'pages/Second', params: { src: 'Index页面传来的数据', }}, router.RouterMode.Single)形式二:API9及以上,router.replaceUrl() 办法新增了mode参数,能够将mode参数配置为 router.RouterMode.Single单实例模式 和 router.RouterMode.Standard多实例模式。在单实例模式下:如果指标页面的url在页面栈中曾经存在同url页面,离栈顶最近同url页面会被挪动到栈顶,替换以后页面,并销毁被替换的以后页面,挪动后的页面为新建页,页面栈的元素数量会减1;如果指标页面的url在页面栈中不存在同url页面,按多实例模式跳转,页面栈的元素数量不变。 router.replaceUrl({url: 'pages/Second',params: { src: 'Index页面传来的数据',}}, router.RouterMode.Single)曾经实现了页面的跳转,接下来,在Second页面中如何进行自定义参数的接管呢? 通过调用 router.getParams() 办法获取Index页面传递过去的自定义参数。 import router from '@ohos.router';@Entry@Componentstruct Second { @State src: string = router.getParams()?.['src']; // 页面刷新展现 ...}成果示意如下图所示。在Index页面中,点击“Next”后,即可从Index页面跳转到Second页面,并在Second页面中接管参数和进行页面刷新展现。 页面返回和参数接管常常还会遇到一个场景,在Second页面中,实现了一些性能操作之后,心愿能返回到Index页面,那咱们要如何实现呢? 在Second页面中,能够通过调用 router.back() 办法实现返回到上一个页面,或者在调用router.back()办法时减少可选的options参数(减少url参数)返回到指定页面。 阐明 调用router.back()返回的指标页面须要在页面栈中存在能力失常跳转。例如调用router.pushUrl()办法跳转到Second页面,在Second页面能够通过调用router.back()办法返回到上一个页面。例如调用router.clear()办法清空了页面栈中所有历史页面,仅保留以后页面,此时则无奈通过调用router.back()办法返回到上一个页面。返回上一个页面。 router.back();返回到指定页面。 router.back({ url: 'pages/Index' });成果示意如下图所示。在Second页面中,点击“Back”后,即可从Second页面返回到Index页面。 页面返回能够依据业务须要减少一个询问对话框。即在调用router.back()办法之前,能够先调用router.enableBackPageAlert()办法开启页面返回询问对话框性能。 阐明 router.enableBackPageAlert() 办法开启页面返回询问对话框性能,只针对以后页面失效。例如在调用router.pushUrl()或者router.replaceUrl()办法,跳转后的页面均为新建页面,因而在页面返回之前均须要先调用router.enableBackPageAlert()办法之后,页面返回询问对话框性能才会失效。如需敞开页面返回询问对话框性能,能够通过调用 router.disableAlertBeforeBackPage() 办法敞开该性能即可。router.enableBackPageAlert({ message: 'Message Info'});router.back();在Second页面中,调用router.back()办法返回上一个页面或者返回指定页面时,依据须要持续减少自定义参数,例如在返回时减少一个自定义参数src。 ...

September 6, 2023 · 2 min · jiezi

关于harmonyos:鸿蒙ArtTS基础入门学习笔记

「鸿蒙」ArtTS根底入门学习笔记ArtTS基础知识ArtTSArkTS是HarmonyOS优选的主力利用开发语言。它在TypeScript(简称TS)的根底上,扩大了申明式UI、状态治理等相应的能力,让开发者能够以更简洁、更天然的形式开发高性能利用。TS是JavaScript(简称JS)的超集,ArkTS则是TS的超集。ArkTS会联合利用开发和运行的需要继续演进,包含但不限于引入分布式开发范式、并行和并发能力加强、类型零碎加强等方面的语言个性。 基于JS的前端框架以及TS的引入,进一步晋升了利用开发效率,但仍然存在一些有余。 从开发者维度来看:写一个利用须要理解三种语言(JS/TS、HTML和CSS)。这对Web开发者绝对敌对,但对非Web开发者来说,累赘较重。 从运行时维度来看: 在语言运行时方面,只管TS有了类型的加持,但也只是用于编译时查看,而后通过TS Compiler转成JS,运行时引擎还是无奈利用到基于类型零碎的优化。在渲染方面,支流Web引擎因为自身复杂度以及历史起因,性能、资源占用方面与常见OS原生框架都有肯定的差距,尤其在挪动平台上。React Native通过渲染架构的改良肯定水平上晋升了性能体验,但在平台渲染成果和能力的一致性,以及JS语言性能等方面还是存在肯定的有余。Google在2018年底推出的Flutter则走了另外一条路,联合新的语言Dart,引入新的申明式开发范式,基于Skia的自绘制引擎构建可跨平台的独立的渲染能力。这是一种较为翻新的计划,不过也有几点有余: Dart语言生态。只管Dart语言2011年就已推出,风闻其指标是取代JS,但整个生态还是十分强大,Dart语言公布7年后随着Flutter的推出才有所改善。整体而言,Dart和支流语言生态相比还是有十分大的差距。开发范式。Flutter裸露了很多细粒度的Widget接口,整体开发的简洁度,开发门槛,尤其是和Apple推出的SwiftUI相比,存在肯定的差距。有意思的是,Google在2021年又推出了新的开发框架Jetpack Compose,联合了Kotlin的语言生态,设计了新的申明式UI开发范式。 2019年,咱们在思考如何构建新的利用开发框架的时候,从以下几个维度进行了重点思考: 语言生态开发效率性能体验跨设施/跨平台能力因为JS/TS有比较完善的开发者生态,语言也比拟中立敌对,有相应的规范组织能够逐渐演进,JS/TS语言成了比拟天然的抉择。以JS/TS为根底,在开发框架的维度,咱们做了如下的架构演进设计: 通过基于JS扩大的类Web开发范式,来反对支流的前端开发形式。同步的,在运行时方面,通过渲染引擎的加强(平台无关的自绘制机制、申明式UI后端设计、动静布局/多态UI组件等),语言编译器和运行时的优化加强(代码预编译、高效FFI-Foreign Function Interface、引擎极小化等),进一步晋升相干的性能体验,并可部署到不同设施上(包含百KB级内存的轻量设施)。另外,通过平台适配层的设计,构建了跨OS平台的基础设施。通过基于TS扩大的申明式UI开发范式,提供了更简洁更天然的开发体验。在运行时方面,在上述的根底上,联合语言运行时的类型优化,以及渲染运行时的扁平化流水线技术等,进一步晋升性能体验。 申明式开发范式 装璜器用来装璜类、构造体、办法以及变量,赋予其非凡的含意,如上述示例中 @Entry 、 @Component 、 @State 都是装璜器。具体而言, @Component 示意这是个自定义组件; @Entry 则示意这是个入口组件; @State 示意组件中的状态变量,此状态变动会引起 UI 变更。自定义组件可复用的 UI 单元,可组合其它组件,如上述被 @Component 装璜的 struct Hello。UI 形容申明式的形式来形容 UI 的构造,如上述 build() 办法外部的代码块。内置组件框架中默认内置的根底和布局组件,可间接被开发者调用,比方示例中的 Column、Text、Divider、Button。事件办法用于增加组件对事件的响应逻辑,对立通过事件办法进行设置,如追随在Button前面的onClick()。属性办法用于组件属性的配置,对立通过属性办法进行设置,如fontSize()、width()、height()、color() 等,可通过链式调用的形式设置多项属性。从UI框架的需要角度,ArkTS在TS的类型零碎的根底上,做了进一步的扩大:定义了各种装璜器、自定义组件和UI形容机制,再配合UI开发框架中的UI内置组件、事件办法、属性办法等独特形成了利用开发的主体。在利用开发中,除了UI的结构化形容之外,还有一个重要的方面:状态治理。如上述示例中,用 @State 装璜过的变量 myText ,蕴含了一个根底的状态管理机制,即 myText 的值的变动会主动触发相应的 UI 变更 (Text组件)。ArkUI 中进一步提供了多维度的状态管理机制。和 UI 相关联的数据,不仅能够在组件内应用,还能够在不同组件层级间传递,比方父子组件之间,爷孙组件之间,也能够是全局范畴内的传递,还能够是跨设施传递。另外,从数据的传递模式来看,可分为只读的单向传递和可变更的双向传递。开发者能够灵便的利用这些能力来实现数据和 UI 的联动。 具体可参考:https://developer.harmonyos.com/cn/docs/documentation/doc-gui...ArkTS开发实际申明式UI基本概念利用界面是由一个个页面组成,ArkTS是由ArkUI框架提供,用于以申明式开发范式开发界面的语言。 申明式UI构建页面的过程,其实是组合组件的过程,申明式UI的思维,次要体现在两个方面: 形容UI的出现后果,而不关怀过程状态驱动视图更新相似苹果的SwiftUI中通过组合视图View,安卓Jetpack Compose中通过组合@Composable函数,ArkUI作为HarmonyOS利用开发的UI开发框架,其应用ArkTS语言构建自定义组件,通过组合自定义组件实现页面的构建。 自定义组件的组成ArkTS通过struct申明组件名,并通过@Component和@Entry装璜器,来形成一个自定义组件。 应用@Entry和@Component装璜的自定义组件作为页面的入口,会在页面加载时首先进行渲染。 @Entry@Componentstruct ToDoList {...}例如ToDoList组件对应如下整个代办页面。 应用@Component装璜的自定义组件,如ToDoItem这个自定义组件则对应如下内容,作为页面的组成部分。 @Componentstruct ToDoItem {...} ...

September 6, 2023 · 2 min · jiezi

关于harmonyos:HarmonyOS实现静态与动态数据可视化图表

一. 样例介绍本篇 Codelab 基于 switch 组件和 chart 组件,实现线形图、占比图、柱状图,并通过 switch 切换 chart 组件数据的动动态显示。要求实现以下性能:1.  实现静态数据可视化图表。2.  关上开关,实现动态图切换为动静可视化图表 相干概念● switch组件:开关选择器,通过开关,开启或敞开某个性能。● chart组件:图表组件,用于出现线形图、占比图、柱状图界面。 残缺示例gitee源码地址 二.环境搭建咱们首先须要实现 HarmonyOS 开发环境搭建,可参照如下步骤进行。 软件要求● DevEco Studio版本:DevEco Studio 3.1 Release 及以上版本。● HarmonyOS SDK版本:API version 9 及以上版本。 硬件要求● 设施类型:华为手机或运行在 DevEco Studio 上的华为手机设施模拟器。● HarmonyOS 零碎:3.1.0 Developer Release 及以上版本。 环境搭建1.  装置 DevEco Studio,详情请参考下载和装置软件。2.  设置 DevEco Studio 开发环境,DevEco Studio 开发环境须要依赖于网络环境,须要连贯上网络能力确保工具的失常应用,能够依据如下两种状况来配置开发环境:如果能够间接拜访 Internet,只需进行下载HarmonyOS SDK操作。a.  如果网络不能间接拜访 Internet,须要通过代理服务器才能够拜访,请参考配置开发环境。3.  开发者能够参考以下链接,实现设施调试的相干配置:● 应用真机进行调试●  应用模拟器进行调试 三.代码构造解读本篇 Codelab 只对外围代码进行解说,对于残缺代码,咱们会在源码下载或 gitee 中提供。 ├──entry/src/main/js // 代码区│ └──MainAbility│ ├──common│ │ └──images // 图片资源│ ├──i18n // 国际化中英文│ │ ├──en-US.json │ │ └──zh-CN.json │ ├──pages│ │ └──index│ │ ├──index.css // 首页款式文件 │ │ ├──index.hml // 首页布局文件│ │ └──index.js // 首页业务解决文件│ └──app.js // 程序入口└──entry/src/main/resources // 利用资源目录四.构建主界面本章节将介绍利用主页面的实现,页面从上至下分为两个局部:1.  应用 switch 组件实现切换按钮,用于管制 chart 组件数据的动动态显示。2.  应用 chart 组件顺次实现线形图、占比图、柱状图。 ...

September 6, 2023 · 3 min · jiezi

关于harmonyos:HarmonyOS实现表单页面的输入必填校验和提交

一. 样例介绍本篇 Codelab 基于 input 组件、label 组件和 dialog 组件,实现表单页面的输出、必填校验和提交:1.  为 input 组件设置不同类型(如:text,email,date 等),实现表单页面。2.  对表单页面中的用户名、电子邮件、喜好输入框进行必填校验。3.  应用弹框抉择性别、喜好。 相干概念● input组件:交互式组件,包含单选框,多选框,按钮和单行文本输入框。● label组件:为 input、button、textarea 组件定义相应的标注,点击该标注时会触发绑定组件的点击成果。● dialog组件:自定义弹窗容器。 残缺示例gitee源码地址 二. 环境搭建咱们首先须要实现 HarmonyOS 开发环境搭建,可参照如下步骤进行。 软件要求● DevEco Studio版本:DevEco Studio 3.1 Release 及以上版本。● HarmonyOS SDK版本:API version 9 及以上版本。 硬件要求 ● 设施类型:华为手机或运行在 DevEco Studio 上的华为手机设施模拟器。● HarmonyOS 零碎:3.1.0 Developer Release 及以上版本。 环境搭建1.  装置 DevEco Studio,详情请参考下载和装置软件。2.  设置 DevEco Studio 开发环境,DevEco Studio 开发环境须要依赖于网络环境,须要连贯上网络能力确保工具的失常应用,能够依据如下两种状况来配置开发环境:● 如果能够间接拜访 Internet,只需进行下载HarmonyOS SDK操作。● 如果网络不能间接拜访 Internet,须要通过代理服务器才能够拜访,请参考配置开发环境。1.  开发者能够参考以下链接,实现设施调试的相干配置:● 应用真机进行调试● 应用模拟器进行调试 三.代码构造解读本篇 Codelab 只对外围代码进行解说,对于残缺代码,咱们会在源码下载或 gitee 中提供。 ├──entry/src/main/js // 代码区│ └──MainAbility │ ├──common│ │ ├──constant│ │ │ └──commonConstants.js // 公共常量│ │ └──images // 图片资源目录│ ├──i18n│ │ ├──en-US.json // 英文国际化│ │ └──zh-CN.json // 中文国际化│ ├──pages│ │ └──index│ │ ├──index.css // 表单页面款式│ │ ├──index.hml // 表单页面│ │ └──index.js // 表单页面逻辑│ └──app.js // 程序入口└──entry/src/main/resource // 利用动态资源目录四. 页面设计页面包含用户名、电子邮箱、出生日期、身高、性别、喜好输入框和提交按钮,点击提交按钮进行必填校验。 ...

September 5, 2023 · 4 min · jiezi

关于harmonyos:开发指导利用组件插值器动画实现HarmonyOS动效

一. 组件动画在组件上创立和运行动画的快捷方式。具体用法请参考通用办法。 获取动画对象通过调用 animate 办法取得 animation 对象,animation 对象反对动画属性、动画办法和动画事件。 <!-- xxx.hml --><div class="container"> <div id="content" class="box" onclick="Show"></div></div>/* xxx.css */.container { flex-direction: column; justify-content: center; align-items: center; width: 100%;}.box{ width: 200px; height: 200px; background-color: #ff0000; margin-top: 30px;}/* xxx.js */export default { data: { animation: '', }, onInit() { }, onShow() { var options = { duration: 1500, }; var frames = [ { width:200,height:200, }, { width:300,height:300, } ]; this.animation = this.$element('content').animate(frames, options); //获取动画对象 }, Show() { this.animation.play(); }} ...

September 5, 2023 · 5 min · jiezi

关于harmonyos:鸿蒙TypeScript基础入门学习笔记

「鸿蒙」TypeScript根底入门学习笔记ArkTS是HarmonyOS优选的主力利用开发语言。它在TypeScript(简称TS)的根底上,匹配ArkUI框架,扩大了申明式UI、状态治理等相应的能力,让开发者以更简洁、更天然的形式开发跨端利用。要理解什么是ArkTS,咱们首先要理解下ArkTS、TypeScript和JavaScript之间的关系: JavaScript是一种属于网络的高级脚本语言,曾经被宽泛用于Web利用开发,罕用来为网页增加各式各样的动静性能,为用户提供更晦涩好看的浏览成果。TypeScript 是 JavaScript 的一个超集,它扩大了 JavaScript 的语法,通过在JavaScript的根底上增加动态类型定义构建而成,是一个开源的编程语言。ArkTS兼容TypeScript语言,拓展了申明式UI、状态治理、并发工作等能力。由此可知,TypeScript是JavaScript的超集,ArkTS则是TypeScript的超集,他们的关系如下图所示: 根底类型TypeScript反对一些根底的数据类型,如布尔型、数组、字符串等,下文举例几个较为罕用的数据类型,咱们来理解下他们的根本应用。 布尔值TypeScript中能够应用boolean来示意这个变量是布尔值,能够赋值为true或者false。 let isDone: boolean = false;数字TypeScript里的所有数字都是浮点数,这些浮点数的类型是 number。除了反对十进制,还反对二进制、八进制、十六进制。 let decLiteral: number = 2023;let binaryLiteral: number = 0b11111100111;let octalLiteral: number = 0o3747;let hexLiteral: number = 0x7e7;字符串TypeScript里应用 string示意文本数据类型, 能够应用双引号( ")或单引号(')示意字符串。 let name: string = "Jacky";name = "Tom";name = 'Mick';数组TypeScrip有两种形式能够定义数组。 第一种,能够在元素类型前面接上 [],示意由此类型元素组成的一个数组。 let list: number[] = [1, 2, 3];第二种形式是应用数组泛型,Array<元素类型>。 let list: Array<number> = [1, 2, 3];元组元组类型容许示意一个已知元素数量和类型的数组,各元素的类型不用雷同。 比方,你能够定义一对值别离为 string和number类型的元组。 let x: [string, number];x = ['hello', 10]; // OKx = [10, 'hello']; // Error枚举enum类型是对JavaScript规范数据类型的一个补充,应用枚举类型能够为一组数值赋予敌对的名字。 ...

September 4, 2023 · 3 min · jiezi

关于harmonyos:开发指导利用CSS动画实现HarmonyOS动效二

注:本文内容分享转载自 HarmonyOS Developer 官网文档点击查看《开发领导—利用CSS动画实现HarmonyOS动效(一)》 3. background-position 款式动画 通过扭转 background-position 属性(第一个值为 X 轴的地位,第二个值为 Y 轴的地位)挪动背景图片地位,若背景图地位超出组件则超出局部的背景图不显示。 <!-- xxx.hml --><div class="container"> <div class="content"></div> <div class="content1"></div></div>/* xxx.css */.container {height: 100%;background-color:#F1F3F5;display: flex;flex-direction: column;justify-content: center;align-items: center;width: 100%;}.content{width: 400px;height: 400px;/* 不倡议图片长宽比为1:1 */background-image: url('common/images/bg-tv.jpg');background-size: 100%;background-repeat: no-repeat;animation: change 3s infinite;border: 1px solid black;}.content1{margin-top:50px;width: 400px;height: 400px;background-image: url('common/images/bg-tv.jpg');background-size: 50%;background-repeat: no-repeat;animation: change1 5s infinite;border: 1px solid black;}/* 背景图片挪动出组件 */@keyframes change{0%{ background-position:0px top;}25%{ background-position:400px top;}50%{ background-position:0px top;}75%{ background-position:0px bottom;}100%{ background-position:0px top;}}/* 背景图片在组件内挪动 */@keyframes change1{0%{ background-position:left top;}25%{ background-position:50% 50%;}50%{ background-position:right bottom;}100%{ background-position:left top;;}}阐明background-position 仅反对背景图片的挪动,不反对背景色彩(background-color)。 ...

September 4, 2023 · 2 min · jiezi

关于harmonyos:开发指导利用CSS动画实现HarmonyOS动效一

注:本文内容分享转载自 HarmonyOS Developer 官网文档 一. CSS 语法参考CSS 是形容 HML 页面构造的款式语言。所有组件均存在零碎默认款式,也可在页面 CSS 款式文件中对组件、页面自定义不同的款式。请参考通用款式理解兼容 JS 的类 Web 开发范式反对的组件款式。 尺寸单位● 逻辑像素 px(文档中以<length>示意):○ 默认屏幕具备的逻辑宽度为 720px(配置见配置文件中的 window 大节),理论显示时会将页面布局缩放至屏幕理论宽度,如 100px 在理论宽度为 1440 物理像素的屏幕上,理论渲染为 200 物理像素(从 720px 向 1440 物理像素,所有尺寸放大 2 倍)。 ○ 额定配置 autoDesignWidth 为 true 时(配置见配置文件中的 window 大节),逻辑像素 px 将依照屏幕密度进行缩放,如 100px 在屏幕密度为 3 的设施上,理论渲染为 300 物理像素。利用须要适配多种设施时,倡议采纳此办法。 ● 百分比(文档中以<percentage>示意):示意该组件占父组件尺寸的百分比,如组件的 width 设置为 50%,代表其宽度为父组件的 50%。 款式导入为了模块化治理和代码复用,CSS 款式文件反对 @import 语句,导入 css 文件。 申明款式每个页面目录下存在一个与布局 hml 文件同名的 css 文件,用来形容该 hml 页面中组件的款式,决定组件应该如何显示。 1.  外部款式,反对应用 style、class 属性来管制组件的款式。例如: <!-- index.hml --><div class="container">  <text style="color: red">Hello World</text></div>/* index.css */.container { justify-content: center;}2.  文件导入,合并内部款式文件。例如,在 common 目录中定义款式文件 style.css,并在 index.css 文件首行中进行导入:、 ...

September 1, 2023 · 4 min · jiezi

关于harmonyos:HarmonyOS扫码服务应用服务一扫直达打造系统级流量新入口

二维码现在是挪动利用流量入口以及性能实现的重要工具,也是各App的流量入口,是物、人、服务的连接器,通过扫码咱们能够更便捷的生存,更高效的进行信息交互,包含信息的公布、信息的获取。 在日常扫码过程中,咱们也常常会遇到扫码环境暗、二维码污损、含糊等状况,导致辨认二维码艰难。HMS Core 对立扫码服务(Scan Kit)为常见简单扫码场景(如反光、暗光、污损、含糊、柱面)做了针对性辨认优化,还能实现远距离码或小型码的检测和主动放大,晋升扫码成功率与用户体验。将来,华为对立扫码服务将带来新的降级,将扫码能力下沉到OS外面,提供零碎级的扫码API,帮忙您疾速构建弱小的扫码能力。 性能个性 反对13种国内支流的码制,蕴含日常生活中常见的QR码,商品和运输行业用到的条形码。 远距离检测主动放大:反对检测远距离码并主动放大,晋升远距和小码场景的辨认成功率。 一图多码:可实现最多四个码同时辨认。 任意角度辨认:通过自动检测和旋转改正,实现对立体肯定角度旋转的码进行辨认。简单场景辨认加强:针对常见的简单扫码场景(如暗光、污损、含糊、小角度、曲面码等)做了针对性辨认优化,晋升扫码成功率与用户体验。 各种场景下辨认的成果 含糊和遮挡的场景: 小角度场景,以后曾经能够做到20度的角度辨认: 反光的场景下辨认,包含在地库外面发光屏的场景的应用: 远距离的放大,最多能够反对将近20米的放大: 折叠的场景,辨认的成果也十分好: 还有一些其它简单的场景,比方曲面、曝光的场景下,都有比拟好的辨认的成果。 将来,当扫码API被调用之后,基于软硬协同的计划,在相机启动的时候会进行几个步骤,首先做图谱的裁剪,精简流程。其次资源供应歪斜,相机启动会更快。在没有做下沉的时候,对一些远距离、强光场景下,至多要15帧以上能力辨认到,能力下沉到OS后根本3帧以内即可检测出码。 HarmonyOS NEXT独特劣势 免SDK集成,采纳HarmonyOS零碎级扫码接口,包体0减少,接入更简略,更便捷。免弹窗。在传统的扫码过程中,须要用户受权相机的权限进行弹窗提醒,用户体验较差;对立扫码服务与相机协同,通过零碎的预受权的形式罢黜用户弹窗,优化用户体验的同时平安隐衷也能失去保障。相机启动快。对立扫码服务和相机的底层做了协同和优化,码图品质更好,算法检测辨认的准确率更高更快。 HarmonyOS NEXT接入指南 绝对原有的SDK的接入形式更加便捷,在导入API当前,只须要几行代码按需要配置好相应参数,就能够实现极简的接入。 1、对立扫码服务提供HarmonyOS零碎级扫码接口,不同于传统的SDK集成形式,接口简略,接入更便捷; 2、对立扫码服务将提供默认界面扫码(反对单码和多码辨认)API,后续将凋谢其它接口。 HMS Core对立扫码服务新版首页行将来袭,更多HarmonyOS NEXT技术干货敬请期待! 理解更多详情>> 拜访对立扫码服务联盟官网获取对立扫码服务开发领导文档拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

August 31, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS使用Web组件加载页面

页面加载是Web组件的基本功能。依据页面加载数据起源能够分为三种罕用场景,包含加载网络页面、加载本地页面、加载HTML格局的富文本数据。 页面加载过程中,若波及网络资源获取,须要配置ohos.permission.INTERNET网络拜访权限。 加载网络页面开发者能够在Web组件创立的时候指定默认加载的网络页面 。在默认页面加载实现后,如果开发者须要变更此Web组件显示的网络页面,能够通过调用loadUrl()接口加载指定网络网页。 在上面的示例中,在Web组件加载完“www.example.com”页面后,开发者可通过loadUrl接口将此Web组件显示页面变更为“www.example1.com”。 // xxx.etsimport web_webview from '@ohos.web.webview';@Entry@Componentstruct WebComponent { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); build() { Column() { Button('loadUrl') .onClick(() => { try { // 点击按钮时,通过loadUrl,跳转到www.example1.com this.webviewController.loadUrl('www.example1.com'); } catch (error) { console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); } }) // 组件创立时,加载www.example.com Web({ src: 'www.example.com', controller: this.webviewController}) } }}加载本地页面将本地页面文件放在利用的rawfile目录下,开发者能够在Web组件创立的时候指定默认加载的本地页面 ,并且加载实现后可通过调用loadUrl()接口变更以后Web组件的页面。 在上面的示例中展现加载本地页面文件的办法:● 将资源文件搁置在利用的resources/rawfile目录下。图1 资源文件门路 ● 利用侧代码 // xxx.etsimport web_webview from '@ohos.web.webview';@Entry@Componentstruct WebComponent { webviewController: web_webview.WebviewController = new web_webview.WebviewController(); build() { Column() { Button('loadUrl') .onClick(() => { try { // 点击按钮时,通过loadUrl,跳转到local1.html this.webviewController.loadUrl($rawfile("local1.html")); } catch (error) { console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); } }) // 组件创立时,通过$rawfile加载本地文件local.html Web({ src: $rawfile("local.html"), controller: this.webviewController }) } }}●local.html页面代码。 ...

August 31, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOSUI-开发性能提升的推荐方法

注:本文转载自 HarmonyOS 官网文档 开发者若应用低性能的代码实现性能场景可能不会影响利用的失常运行,但却会对利用的性能造成负面影响。本章节列举出了一些可晋升性能的场景供开发者参考,以防止利用实现上带来的性能劣化。 应用数据懒加载开发者在应用长列表时,如果间接采纳循环渲染形式,如下所示,会一次性加载所有的列表元素,一方面会导致页面启动工夫过长,影响用户体验,另一方面也会减少服务器的压力和流量,减轻零碎负】 @Entry@Componentstruct MyComponent { @State arr: number[] = Array.from(Array(100), (v,k) =>k); //结构0-99的数组 build() { List() { ForEach(this.arr, (item: number) => { ListItem() { Text(`item value: ${item}`) } }, (item: number) => item.toString()) } }}上述代码会在页面加载时将 100 个列表元素全副加载,这并非咱们须要的,咱们心愿从数据源中按需迭代加载数据并创立相应组件,因而须要应用数据懒加载,如下所示: class BasicDataSource implements IDataSource { private listeners: DataChangeListener[] = [] public totalCount(): number { return 0 } public getData(index: number): any { return undefined } registerDataChangeListener(listener: DataChangeListener): void { if (this.listeners.indexOf(listener) < 0) {      console.info('add listener') this.listeners.push(listener) } } unregisterDataChangeListener(listener: DataChangeListener): void { const pos = this.listeners.indexOf(listener); if (pos >= 0) {      console.info('remove listener') this.listeners.splice(pos, 1) } } notifyDataReload(): void { this.listeners.forEach(listener => {      listener.onDataReloaded() }) } notifyDataAdd(index: number): void { this.listeners.forEach(listener => {      listener.onDataAdd(index) }) } notifyDataChange(index: number): void { this.listeners.forEach(listener => {      listener.onDataChange(index) }) } notifyDataDelete(index: number): void { this.listeners.forEach(listener => {      listener.onDataDelete(index) }) } notifyDataMove(from: number, to: number): void { this.listeners.forEach(listener => {      listener.onDataMove(from, to) }) }}class MyDataSource extends BasicDataSource { private dataArray: string[] = ['item value: 0', 'item value: 1', 'item value: 2'] public totalCount(): number { return this.dataArray.length } public getData(index: number): any { return this.dataArray[index] } public addData(index: number, data: string): void { this.dataArray.splice(index, 0, data) this.notifyDataAdd(index) } public pushData(data: string): void { this.dataArray.push(data) this.notifyDataAdd(this.dataArray.length - 1) }}@Entry@Componentstruct MyComponent { private data: MyDataSource = new MyDataSource() build() { List() { LazyForEach(this.data, (item: string) => { ListItem() { Row() { Text(item).fontSize(20).margin({ left: 10 }) } } .onClick(() => { this.data.pushData('item value: ' + this.data.totalCount()) }) }, item => item) } }} ...

August 31, 2023 · 4 min · jiezi

关于harmonyos:HarmonyOS一次开发多端部署优秀实践玩机技巧码上起航

随着终端设备状态日益多样化,分布式技术逐步突破繁多硬件边界,一个利用或服务,能够在不同的硬件设施之间按需调用、互助共享,让用户享受无缝的全场景体验。作为利用开发者,宽泛的设施类型也能为利用带来宽广的潜在用户群体。一个利用要在多类设施上提供对立的内容,须要适配不同的屏幕尺寸和硬件,开发成本较高。"一次开发,多端部署"(后文中简称为"一多")的利用开发理念,能够让开发者基于对立的设计,在多类设施上,高效构建可运行的利用。在 2023HDC 大会上,华为展现了其自研利用"玩机技巧"基于这一理念的优良实际。 玩机技巧作为华为终端用户罕用的利用,通过"一多",部署在手机、折叠屏、平板等多设施上,不仅取得了体验晋升,开发代码量也降落了约 40%。下文,咱们将从架构设计、UI 设计、交互设计和上架 4 个层面对玩机技巧利用的"一多"开发进行解读。 通过"一多",玩机技巧利用部署在不同设施上 一、三层架构分层设计玩机技巧通过在一个工程中采纳三层架构的分层设计,取得了可能反对多种设施的根底能力,适配差异化和代码共享也达到最大均衡。 玩机技巧开发将利用拆分成公共能力层(Common)、根底个性层(Feature)、产品定制层(Product)三层工程构造,反对一套代码工程一次开发上架,即可多端按需部署。公共能力层反对网络框架、工具类、数据管理等能力。个性层形象出可复用的高内聚、低耦合的根底个性集,如富媒体浏览、搜寻。在产品定制层,针对多设施存在差别的个性集成 UI、资源和配置,如多窗口、分栏体验,与利用基座解耦等多种因素。通过自适应布局、响应式控件、交互归一等零碎 OS 能力,以及 IDE 工程能力,将利用工程归一,最大化复用代码,晋升设计和开发效率,并兼顾多设施的整体用户体验。撑持利用工程归一、最大化复用代码,晋升了设计和开发效率,兼顾了多设施的整体用户体验。 玩机技巧利用的三层架构分层设计 二、多端设计 UI 自适应不同设施屏幕尺寸、分辨率等存在差别。HarmonyOS 对屏幕进行逻辑形象,包含尺寸和物理像素,并通过方舟开发框架(简称 ArkUI)提供丰盛的自适应、响应式的布局,不便开发者进行不同屏幕的界面适配。同时,HarmonyOS 将人因设计、多端设计 UI 自适应等教训,都固化到相干设计指南和 ArkUI 控件中,让利用开发者在设计阶段就能够思考多端的差异化和一致性。 在玩机技巧的设计开发中,多设施的体验在一致性与差异性中获得良好的均衡。首先,玩机技巧界面设计和交互方式在手机和 2in1 设施上尽量保持一致,首页采纳了对立的信息架构、界面布局、零碎控件,缩小用户学习老本。其次,2in1 设施在屏幕尺寸、人群场景、操控形式和性能范畴上兼顾肯定的差异化设计,满足了开发者个性化的诉求。 灵便布局多端设计 UI 自适应,在同一个栅格模式下切换窗口大小, 玩机技巧可能随窗口大小的变动而主动适应界面上的所有元素,从而保障动静界面的好看。当界面窗口变动到肯定水平时(断点),比方从 2in1 模式拖动窗口变小到手机窗口大小时(从 2in1 模式切换成手机模式),界面须要响应式变动布局,从而保障利用在不同窗口大小下的展现好看。 栅格响应式能力组件作为利用的根底组成部分,在视觉、交互、动效等表现形式上需针对不同设施进行必要的调整,达到最佳体验。在玩机技巧中应用一多能力,同一个组件标题栏可实现在手机和 2in1 的不同款式。 同一个组件标题栏在手机和 2in1 的不同款式 视觉格调为了保障各组件格调款式统一,玩机技巧应用 HarmonyOS 对立定义的视觉款式系统资源,即分层参数配置(比方色调、字号、圆角、间距等)。 三、交互事件归一对于不同类型的终端设备,用户可能有不同的交互方式,如通过触摸屏、鼠标、触控板等。不同输出设施的雷同用意的输出指令,交互归一提供给开发者对立的 API。玩机技巧利用一个 hap 能够装置在不同设施中,不须要针对不同设施解决交互,极大的精简了开发难度和开发代码量。 四、一次上架按需部署一次上架后,剩下的工作交给 AppGallery Connect,开发者能够按需部署到不同终端上。 一次上架按需部署逻辑图 玩机技巧在开发态,通过业务解耦,把不同的业务拆分为多个模块。在部署态,能够将一个或多个模块自由组合,打包成一个 App Pack 对立上架。在散发运行态,每个模块都能够独自散发满足用户繁多应用场景,也能够多个模块组合散发满足用户更加简单的应用场景。开发者能够在以下两种模式中抉择,进行生态利用、元服务的打包和上架。 通过"一多"能力进行打包、上架的两种模式 如上为玩机技巧在"一多"个性的实践经验,心愿为开发者提供参考,欢送更多利用开发者理解并应用"一次开发,多端部署"能力。 点击关注浏览原文,理解更多资讯

August 30, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS账号服务畅行鸿蒙生态所有应用与服务

账号对于用户来说并不生疏,在购买新设施或者应用新利用的时候,用户经常会被疏导注册或者登录账号,账号就是用户在这些设施或利用内的通行证。依据华为上半年的一项统计,整体上中国网民人均下载App量在68个,华为的全场景设施中,同时有3个及以上设施的用户有8000多万,随着账号数、设施数的减少,用户如何更好地去爱护拜访利用的平安、管控设施其实是一项很大的挑战。 基于此,华为提供了通过账号去连接的解决方案。随着账号利用、设施越来越多,用户对账号的安全性需要减少,账号整体的趋势应该趋势更少,甚至惟一。 HUAWEI ID是在鸿蒙生态的通行证,一个HUAWEI ID能够登录全场景所有的鸿蒙设施,发明鸿蒙生态所有的利用和服务,基于该定位,ID代表了用户成为鸿蒙生态圈场景软硬件协同的核心。 HUAWEI ID是HarmonyOS通用的服务之一,提供全场景多终端便捷的账号体验。包含近场,扫码、人脸、指纹等多重登录形式,用户能够依据应用习惯,抉择最不便简洁的登录形式。同账号设施免认证受权,实现剪切板、跨屏拖拽等多设施协同互联体验,视频的跨设施截取,设施前端同步等。 在保障账号的平安方面,华为提供多重平安爱护机制,HUAWEI ID默认以双因素认证作为平安终点。 此外华为提供账号异样事件的订阅机制,被动爱护用户账号的平安,有任何异动如账号的盗号、解冻、销户的状况下,都会被动告诉开发者,开发者会基于告诉事件做相应解决。 将来凋谢能力一键疾速登录 通过HUAWEI ID一键疾速登录的能力,开发者能够疾速登录到本人的利用。华为会凋谢一个用户标识(1ID)给开发者利用,不同的开发者获取的ID不一样,能够做到开发者的隔离,更好地爱护用户的隐衷。 按需受权获取用户信息 华为会对头像昵称、手机号、地址等信息申请用户受权,如果用户不太心愿分享本人的头像、昵称,能够增加其它的头像、昵称,对手机号申请受权,用户也能够增加非华为的手机账号,华为会在取得更多受权的前提下服务开发者和用户。 身份认证 华为会提供很多种身份认证的能力给到开发者,包含设施的人脸、指纹、明码,还有手机号验证码,将来还会刻画一些基于用户集体指令信息身份核实的人脸能力。 接入劣势对用户的价值:安全性进步,默认的双因素认证,帮忙用户对立治理。 隐衷性强,对立治理个人信息,最小化受权,对立治理所有用户受权的接入。 便利性高,用户能够通过一个ID疾速登录利用。 对开发者的价值:晋升转化率,升高用户注册老本,晋升注册转化率 缩小用户散失,换机场景免登录,资产继承 提供更多的优质服务,助力开发者达成商业的指标。 接入指南将来HUAWEI ID将提供免SDK集成,基于华为实验室测试后果,整个包的体积缩小900KB,开发效率晋升30%以上,同时华为也提供对立认证服务的API,后续会基于此认证服务的框架继续扩大对开发者无利的认证服务。 新生态,新征程,HarmonyOS账号服务将使能开发者高效构建对立的用户认证能力,畅行鸿蒙生态。 理解更多详情>> 拜访账号服务开发者联盟官网 获取账号服务开发领导文档 拜访HMS Core 联盟官网 获取HMS Core 开发领导文档 关注咱们,第一工夫理解 HMS Core 最新技术资讯~

August 29, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS-Codelab-优秀样例购物应用体验一次开发多端部署魅力

一. 样例介绍本篇Codelab基于自适应布局和响应式布局,实现购物利用在手机、折叠屏、平板不同屏幕尺寸设施上按不同设计显示。通过三层工程构造组织代码,实现一次开发,多端部署 。 手机运行成果如图所示: 折叠屏运行效果图: 平板运行效果图: 相干概念● 一次开发,多端部署:一套代码工程,一次开发上架,多端按需部署。撑持开发者疾速高效的开发反对多种终端设备状态的利用。● 自适应布局:当内部容器大小发生变化时,元素能够依据绝对关系主动变动以适应内部容器变动的布局能力。绝对关系如占比、固定宽高比、显示优先级等。以后自适应布局能力有7种:拉伸能力、均分能力、占比能力、缩放能力、延长能力、暗藏能力、折行能力。自适应布局能力能够实现界面显示随内部容器大小间断变动。● 响应式布局:当内部容器大小发生变化时,元素能够依据断点、栅格或特定的特色(如屏幕方向、窗口宽低等)主动变动以适应内部容器变动的布局能力。以后响应式布局能力有3种:断点、媒体查问、栅格布局。● GridRow:栅格容器组件,仅能够和栅格子组件(GridCol)在栅格布局场景中应用。● GridCol:栅格子组件,必须作为栅格容器组件(GridRow)的子组件应用。 残缺示例:gitee源码地址 二. 环境搭建咱们首先须要实现HarmonyOS开发环境搭建,可参照如下步骤进行。 软件要求● DevEco Studio版本:DevEco Studio 3.1 Release及以上版本。● HarmonyOS SDK版本:API version 9及以上版本。 硬件要求● 设施类型:华为手机或运行在DevEco Studio上的华为手机设施模拟器。● HarmonyOS零碎:3.1.0 Developer Release及以上版本。 环境搭建1.  装置DevEco Studio,详情请参考下载和装置软件。2.  设置DevEco Studio开发环境,DevEco Studio开发环境须要依赖于网络环境,须要连贯上网络能力确保工具的失常应用,能够依据如下两种状况来配置开发环境:● 如果能够间接拜访Internet,只需进行下载HarmonyOS SDK操作。● 如果网络不能间接拜访Internet,须要通过代理服务器才能够拜访,请参考配置开发环境。1.  开发者能够参考以下链接,实现设施调试的相干配置:● 应用真机进行调试● 应用模拟器进行调试 三.代码构造解读本篇Codelab只对外围代码进行解说,common为公共能力层,feature为功能模块层,本示例分为六个模块,product则为产品层。对于残缺代码,咱们会在源码下载或gitee中提供。 ├──common/src/main/ets // 公共能力层│ ├──bean│ │ ├──CommodityModel.ets // 商品数据实体类│ │ ├──OrderModel.ets // 订单数据实体类│ │ └──ProductModel.ets // 购物车商品数据实体类│ ├──components│ │ ├──CommodityList.ets // 商品列表组件│ │ ├──CounterProduct.ets // 数量加减组件│ │ └──EmptyComponent.ets // 无数据显示组件│ ├──constants│ │ ├──BreakpointConstants.ets // 断点常量类│ │ ├──GridConstants.ets // 栅格常量类│ │ └──StyleConstants.ets // 款式常量类│ ├──utils│ │ ├──BreakpointSystem.ets // 断点工具类│ │ ├──CommonDataSource.ets // 数据封装类│ │ ├──LocalDataManager.ets // 数据操作治理类│ │ ├──Logger.ets.ets // 日志工具类│ │ └──Utils.ets // 办法工具类│ └──viewmodel│ └──ShopData.ets // 商品利用数据├──features // 功能模块层│ ├──commoditydetail/src/main/ets // 商品详情内容区│ │ ├──bean│ │ │ └──TypeModel.ets // 实体类│ │ ├──components│ │ │ ├──CapsuleGroupButton.ets // 自定义按钮组件│ │ │ ├──CommodityDetail.ets // 商品详情组件│ │ │ └──SpecificationDialog.ets // 商品规格弹框│ │ ├──constants│ │ │ └──CommodityConstants.ets // 商品详情区常量类│ │ └──viewmodel│ │ └──CommodityDetailData.ets // 商品详情数据类│ ├──home/src/main/ets // 首页内容区│ │ ├──components│ │ │ └──Home.ets // 首页内容组件│ │ └──viewmodel│ │ └──HomeData.ets // 首页数据│ ├──newproduct/src/main/ets // 新品内容区│ │ ├──components│ │ │ └──NewProduct.ets // 新品内容组件│ │ └──viewmodel│ │ └──NewProductData.ets // 新品数据│ ├──orderdetail/src/main/ets // 订单相干内容区│ │ ├──components│ │ │ ├──AddressInfo.ets // 收件人信息组件│ │ │ ├──CommodityOrderItem.ets // 商品订单信息组件│ │ │ ├──CommodityOrderList.ets // 商品订单列表组件│ │ │ ├──ConfirmOrder.ets // 确认订单组件│ │ │ ├──HeaderBar.ets // 题目组件│ │ │ ├──OrderDetailList.ets // 订单分类列表组件│ │ │ ├──OrderListContent.ets // 订单分类列表内容组件│ │ │ └──PayOrder.ets // 领取订单组件│ │ ├──constants│ │ │ └──OrderDetailConstants.ets // 订单区常量类│ │ └──viewmodel│ │ └──OrderData.ets // 订单数据│ ├──personal/src/main/ets // 我的内容区│ │ ├──bean│ │ │ └──IconButtonModel.ets // 按钮图标实体类│ │ ├──components│ │ │ ├──IconButton.ets // 图片按钮组件│ │ │ ├──LiveList.ets // 直播列表组件│ │ │ └──Personal.ets // 我的内容组件│ │ ├──constants│ │ │ └──PersonalConstants.ets // 我的常量类│ │ └──viewmodel│ │ └──PersonalData.ets // 我的数据│ └──shopcart/src/main/ets // 购物车内容区│ ├──components│ │ └──ShopCart.ets // 购物车内容组件│ └──constants│ └──ShopCartConstants.ets // 购物车常量类└──products // 产品层 └──phone/src/main/ets // 反对手机、平板 ├──constants │ └──PageConstants.ets // 页面常量类 ├──entryability │ └──EntryAbility.ets // 程序入口类 ├──pages │ ├──CommodityDetailPage.ets // 订单详情页 │ ├──ConfirmOrderPage.ets // 确认订单页 │ ├──MainPage.ets // 主页 │ ├──OrderDetailListPage.ets // 订单分类列表页 │ ├──PayOrderPage.ets // 领取订单页 │ └──SplashPage.ets // 启动过渡页 └──viewmodel └──MainPageData.ets // 主页数据四. 利用主框架4.1 启动页在工程pages目录中,选中Index.ets,点击鼠标右键 > Refactor > Rename,改名为SplashPage.ets。改名后,批改工程entryability目录下EntryAbility.ets文件中windowStage.loadContent办法第一个参数为pages/SplashPage。在该页面的周期函数aboutToAppear里增加一个2秒的定时工作跳转到主页实现。  ...

August 28, 2023 · 6 min · jiezi

关于harmonyos:HarmonyOS元服务开发实践桌面卡片字典

本文转载分享自华为开发者论坛《HarmonyOS元服务开发实际:桌面卡片字典》,作者:蛟龙腾飞 一、我的项目阐明1.DEMO 创意为卡片字典。2.不同卡片显示不同内容:微卡、小卡、中卡、大卡,依据不同卡片特色显示同一个字的不同内容,基于用户习惯可抉择喜爱的卡片。3.万能卡片刷新:用户点击卡片刷新按钮查看新内容,同时卡片设置了定时刷新,让用户每天看到的卡片都是新的文字,便于用户学习和查阅。4.元服务内具备搜寻性能,用户能够通过搜寻查问相应的字和解释,采纳了相似当初用户习惯的高低滑动形式来进行逐字具体论述。      5.基于 API9、ArkTS 语言开发,通过 serverless 云服务实现注册、登录等性能。 二、元服务成果1.  万能卡片成果 2.元服务内页 三、我的项目开发 1.  环境搭建软件要求:DevEco Studio 版本:DevEco Studio 3.1 Release 及以上版本。HarmonyOS SDK版本:API version 9 及以上版本。 硬件要求:设施类型:华为手机或运行在 DevEco Studio 上的华为手机设施模拟器。HarmonyOS 零碎:3.1.0 Developer Release 及以上版本。 2.次要代码构造解读 entry/src/main/ets: 文件入口common:公共资源文件images:公共图片资源Constants.ts:公共常量CountryViewModel.ts:国家号码类LazyFE_Class.ets:懒数据加载类Log.ts:日志类components:封装组件文件database:数据库封装类data_cyhz.ets:数据文件entryability:利用/服务入口entryformability:卡片服务pages:利用/服务页面Auth.ets:认证受权CloudFunction.ets:云函数CloudProject.ets:云我的项目CloudStorage.ets:云存储Index.ets:主页User_Login.ets:登录页User_SignUp.ets:注册页User_VerifyCodeLogin.ets:验证码登录页services:后盾操作类widget:服务卡片resources:资源文件目录 3.进入利用阐明因为创立的是云模板我的项目,所以无需额定配置 SDK 依赖,只须要留神的是,云模板的初始集成 sdk 地位不一样,所以咱们还是在利用初始化阶段应用 context 初始化 SDK,举荐在 entryability 的 onCreate 中进行。  4.首页咱们须要给利用增加底部菜单栏,用于切换不同的利用模块,因为各个模块之间属于齐全独立的状况,并且不须要每次切换都进行界面的刷新,所以咱们用到了 Tabs,TabContent 组件。 本利用一共有首页、我的两个模块,别离对应 Tabs 组件的两个子组件 TabContent。 首页蕴含搜寻文字和滑动浏览信息两个模块,具体代码实现咱们将在下边分模块进行阐明。 搜寻文字:次要用到 Search 组件,通过搜寻文字来跳转到相应的文字展现信息,次要代码如下: 浏览信息模块:次要用到 swiper 组件,通过数据的懒加载行为,来预缓存数据,通过滑动页面来展现文字信息,次要代码如下: 5.我的我的页蕴含游客登陆、用户登录两个模块。其中游客登陆不显示登录信息以及利用局部性能,仅能应用局部利用能力;用户登录显示用户局部信息,并开展利用所有性能,须要用户注册登录;具体代码实现咱们将在下边分模块进行阐明。 游客登录: 用户登录: 6.注册登录页面让用户进行账号注册,可能齐全应用利用。 外围代码: ....onClick(() => { if (this.phoneNumber !== '' && this.password !== '') { let verifyCodeSettings = new VerifyCodeSettingBuilder() .setAction(VerifyCodeAction.REGISTER_LOGIN) .setLang('zh_CN') .setSendInterval(60) .build(); agconnect.auth().requestPhoneVerifyCode(this.countryCode, this.phoneNumber, verifyCodeSettings) .then(verifyCodeResult => { this.startTimer() //验证码申请胜利 }).catch(error => { //验证码申请失败 Prompt.showToast({ message: "请输出正确的手机号和明码" + JSON.stringify(error) }) }); }else { Prompt.showToast({ message: "手机号和明码不能为空" }) }}).............onClick(() => { if (this.phoneNumber !== '' && this.password !== '') { let user = new PhoneUserBuilder() .setCountryCode(this.countryCode) .setPhoneNumber(this.phoneNumber) .setPassword(this.password) //能够给用户设置初始密码。填写后后续能够用明码来登录 .setVerifyCode(this.VerifyCode) .build(); agconnect.auth().createPhoneUser(user) .then(result => { // 创立用户胜利 AppStorage.Set('phoneNumber', user.phoneNumber) AppStorage.Set('password', user.password) AppStorage.Set('isVisitor', false) AppStorage.Set('isLogin', true) AppStorage.Set('userName', user.phoneNumber) router.pushUrl({ url: "pages/Index" }) }) .catch(error => { // 创立用户失败 Prompt.showToast({ message: "注册失败," + JSON.stringify(error),duration:4 }) }) } else { Prompt.showToast({ message: "手机号和明码不能为空" }) }})7.其余云服务阐明:这是云模板初始业务,如有其余业务需要,可自行添加。 ...

August 24, 2023 · 1 min · jiezi

关于harmonyos:鸿蒙应用开发之基础组件

一、组件简介组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI申明式开发范式为开发者提供了丰盛多样的UI组件,咱们能够应用这些组件轻松的编写出更加丰盛、丑陋的界面。 组件依据性能能够分为以下五大类:根底组件、容器组件、媒体组件、绘制组件、画布组件。其中根底组件是视图层的根本组成单元,包含Text、Image、TextInput、Button、LoadingProgress等,例如上面这个罕用的登录界面就是由这些根底组件组合而成。  上面咱们将别离介绍这些罕用根底组件的应用。 二、TextText组件用于在界面上展现一段文本信息,能够蕴含子组件Span。 文本款式针对蕴含文本元素的组件,例如Text、Span、Button、TextInput等,可应用fontColor、fontSize、fontStyle、 fontWeight、fontFamily这些文本款式,别离设置文本的色彩、大小、款式、粗细以及字体,文本款式的属性如下表: 上面示例代码中蕴含两个Text组件,第一个应用的是默认款式,第二个给文本设置了一些文本款式。 @Entry@Componentstruct TextDemo { build() { Row() { Column() { Text('HarmonyOS') Text('HarmonyOS') .fontColor(Color.Blue) .fontSize(20) .fontStyle(FontStyle.Italic) .fontWeight(FontWeight.Bold) .fontFamily('Arial') } .width('100%') } .backgroundColor(0xF1F3F5) .height('100%') }}最终的成果如下: 除了通用属性和文本款式设置,上面列举了一些Text组件的罕用属性的应用。 文本对齐形式应用textAlign属性能够设置文本的对齐形式,示例代码如下: Text('HarmonyOS') .width(200) .textAlign(TextAlign.Start) .backgroundColor(0xE6F2FD)textAlign参数类型为TextAlign,定义了以下几种类型: Start(默认值):程度对齐首部。Center:程度居中对齐。End:程度对齐尾部。文本超长显示当文本内容较多超出了Text组件范畴的时候,您能够应用textOverflow设置文本截取形式,需配合maxLines应用,独自设置不失效,maxLines用于设置文本显示最大行数。上面的示例代码将textOverflow设置为Ellipsis ,它将显示不下的文本用 “...” 示意。 Text('This is the text content of Text Component This is the text content of Text Component') .fontSize(16) .maxLines(1) .textOverflow({overflow:TextOverflow.Ellipsis}) .backgroundColor(0xE6F2FD) 成果如下: 文本装璜线应用decoration设置文本装璜线款式及其色彩,大家在浏览网页的时候常常能够看到装璜线,例如带有下划线超链接文本。decoration蕴含type和color两个参数,其中type用于设置装璜线款式,参数类型为TextDecorationTyp,color为可选参数。 上面的示例代码给文本设置了下划线,下划线色彩为彩色: Text('HarmonyOS') .fontSize(20) .decoration({ type: TextDecorationType.Underline, color: Color.Black }) .backgroundColor(0xE6F2FD)成果如下: ...

August 22, 2023 · 2 min · jiezi

关于harmonyos:有奖活动-以代码之名写出对Ta的爱

七夕情人节到了,为了 Ta,你打算用什么形式表白爱?是包包、鲜花、美酒、巧克力,还是一封充斥爱意的短信?在 HarmonyOS,有一群粗劣又机智的开发者们,他们 #以代码之名,表白爱 # 比起鲜花美酒巧克力,这种浪漫无人能及,不仅独特、高级、而且码力值 MAX,创意 MAX!意外的惊喜,谁又不喜爱~这个七夕节,请用 ArkTS 语言,为 Ta 表白爱~流动主题:以代码之名,写出对 Ta 的爱 流动工夫:8 月 22 日~8 月 31 日 流动奖品: 参加形式:① 依据主题,用 ArkTS 语言编写代码,运行代码。② 将代码文件和最终的成果 gif 图打包(大小 15M 以内)发送至:harmonyos@huawei.com 注:为了不便核验作品,保障作品的独特性,请将作品名称命名为:英文或者拼音+公布工夫(例:bestlove202308211523)。 评奖规定:1.   将由官网的评审团对代码作品进行评审,对作品的完整性、代码品质、视觉 UI 和创新性,4 个维度进行打分。2.   提交的作品需保障代码的完整性,能够顺利运行。打分采取满分 100 分制,4 个维度的分数占比:完整性占比 30%、代码品质占比 30%、创新性占比 30%、视觉 UI 占比 10%。3.   角逐所有奖项的前提是:代码必须运行胜利。一等奖须要综合得分≥80 分,二等奖须要综合得分≥70 分,参加奖须要综合得分≥60 分。例:一等奖将角逐出 1 名获奖者,如有 3 名得分超过 80 分,则取分数第 1 名为一等奖,后 2 名将顺移至二等奖,顺次顺移。如没有作品得分超过 80 分,则一等奖轮空。4.   一等奖、二等奖和参加奖将不会叠加。5.   评审完结后,分数后果将于 9 月 4 日颁布在 HarmonyOS 开发者微信公众号,奖品会在颁布后果后的一个月内邮寄收回。 注:本次较量重视原创,如发现有剽窃嫌疑,将被勾销获奖资格。您参加本次流动并提交代码,视为批准永恒且不可撤销地许可华为在寰球范畴内收费对您提交的代码进行批改、复制、发行、信息网络流传等权力。 隐衷申明为了寄送奖品,须要解决获奖人的收货信息(包含收货人姓名、手机号码、收货地址)。基于上述目标须要,咱们会向物流供应商提供您的上述个人信息。并将采取必要的技术手段以确保您的集体信息安全、不被泄露、误用或盗用、失落或意外损毁、或未经批准而被公开或拜访等。仅在为实现上述目标所必须的工夫内保留您的个人信息(保留一年),超出保留工夫后删除或匿名化解决您的个人信息。如您须要行使数据主体权力或存在任何疑难、意见或倡议,请通过拜访隐衷问题页面与咱们其取得联系。(https://consumer.huawei.com/cn/legal/privacy-questions/)点 击关注浏览原文,理解更多资讯

August 22, 2023 · 1 min · jiezi

关于harmonyos:报名开启-HarmonyOS第一课营在暑期系列直播

<HarmonyOS 第一课>2023 年再次启航!特邀 HarmonyOS 布道师星散华为开发者联盟直播间聚焦 HarmonyOS 4 版本新个性邀您一起学习赢好礼!你筹备好了吗?  ↓↓↓预约报名↓↓↓https://url.cloud.huawei.com/n1Umrez5sY

August 18, 2023 · 1 min · jiezi

关于harmonyos:鸿蒙生态星河璀璨-抢先入局敢为人先HarmonyOS先行者的圆梦之旅

在互联网生态畛域,李洋曾经摸爬滚打十多年了,在时代变动和社会倒退需要中一直摸索前行,是鸿蒙生态帮忙他找到了新方向。他深感自主翻新是企业爬坡过坎和发展壮大的基本,所以坚韧不拔地抉择成为HarmonyOS先行者、布道者,动摇助力鸿蒙生态的倒退凋敝。 同时他也是一位心怀幻想、稳得住、静得下、勤于圆梦的研究者,心愿把本人在互联网畛域的教训和研究成果传递给公众,发表创作了《云品牌战略-网络时代与网络世界中企业强盛之道》一书。在深度参加鸿蒙生态业务后,为了让大家疾速理解HarmonyOS开发技术,先后创作了书籍《鸿蒙生态-开启万物互联的智慧新时代》《HarmonyOS原子化服务(元服务)卡片原理与实战》。 对HarmonyOS一见倾心,领先入局 80年代,李洋出世在湖南湘潭湘乡,从小受到“心忧天下、敢为人先”的湖湘精力及家庭现身说法的影响,塑造出了他敢闯敢拼、不服输的性情。“你应该去读你的书,去谋求你的现实,靠本人的致力去实现你的想法。”父母的话在李洋幼年时的心灵里就种下了一颗心怀幻想、怯懦追梦的种子。 2009年李洋来到深圳,那时正好赶上挪动互联网高速发展期,2012年他下定决心开始守业,为大中小型企业提供网络经营、技术研发等服务。从两三个人的草台班子起家,做电商代经营,做小程序,做SaaS零碎…..一路走来,李洋总能在新科技浪潮中把握住机会,一直尝试,公司从几个人倒退到几十号人,业务也越做越大。那个时候,李洋成了家立了业,人生小有成就,然而他没有进行追寻幻想的脚步。 李洋说,“前面发现,你营销做得再好,如果你的经营跟不上,你的底层技术跟不上,你的平台跟不上,这个时候你是没法去兑现你对客户的承诺,咱们就开始构建本人独立的技术团队。”公司的倒退从代经营转到自主研发,让他始终深信的一点是,翻新技术才是硬实力。他和团队晚期就思考做云办公,发现最大的阻碍之一就是操作系统,核心技术上无奈实现闭环。 凑巧在2019年,李洋在新闻上看到华为公布HarmonyOS,立刻“触电”,李洋感到已经的技术构想与HarmonyOS的分布式理念一拍即合,于是果决把握住这个机会,将公司业务转向鸿蒙,并在2020年全力以赴投入鸿蒙开发事业。 回顾过后的情境,李洋坦言,那个时候在网上能找到的对于鸿蒙的信息材料还很少,讲做不成的喷子很多,但这些并没有影响他和团队布局鸿蒙事业的信心和信念。“鸿蒙帮忙咱们解决了很多的技术困惑,我在做鸿蒙业务这个事件上能找到那种,参加科技翻新的使命感,这个事件是值得咱们全力以赴去做的。” 与鸿蒙生态一起播种成长,拥抱星辰大海 最后投入的时候,李洋和团队光是做元服务demo就做了上百个。元服务是基于HarmonyOS API来开发的一种全新的服务提供形式。他和团队一直开发、测试,从单图片开始,到图文、音视频,再到联合AI智能等。 起初团队胜利上架了四五十款元服务,“成语情绪”元服务是其中一个,将干燥的成语学习交融了用户的情绪色调、并细分不同的成语场景,通过HarmonyOS万能卡片的模式出现。“成语情绪是咱们在元服务摸索与开发过程中,阶段性的成绩体现,尽管它是开发摸索期的一个看似简略的作品,但被团队赋予了中华文化的本体。” 在李洋看来,联合元服务的轻量化、免装置、卡片外显等劣势个性,“成语情绪”元服务翻新了中华文化的传播方式,让更多人在日常生活中随时随地、更便捷地接触、学习记忆成语。同时,用户能够依据不同情绪主题的成语卡片增加到手机桌面,即点即用,还能够点击语音播报。 “华为也会提供技术支持与资源搀扶,像咱们开发的元服务上架了当前,用户可通过负一屏、利用市场、小艺倡议等零碎级入口便捷获取元服务。”李洋坚信,元服务带来的红利和时机将是微小的,“它会从新定义在各个细分畛域外面,或者在支流畛域里的利用状态。” 总结做鸿蒙生态业务当前的感触和播种,李洋认为,不仅公司冲破了技术瓶颈,找到了方向,本人也实现了变质式成长。“鸿蒙对开发者在治理赋能方面,也是十分欠缺的,帮忙你从一个小白开始疾速成长,华为开发者联盟平台会有较量、会有课程、会有直播,还会有各种线下技术交流活动,贴心地为开发者买通了从0到1的成长门路。” 从一个老手,到成为华为开发者学堂讲师、华为开发者专家(HDE)、HDG(HUAWEI Developer Groups,华为开发者社区寰球我的项目)组织者,李洋凭借本人的致力和华为团队的帮忙一路进阶。当初的他除了沉闷于线上直播授课外,每个月也会组织HDG开发者社区线下流动,帮忙更多对鸿蒙生态感兴趣的开发者们以及想要退出鸿蒙生态的技术人员、产品经理及企业老板们系统化地去理解鸿蒙生态的概念和HarmonyOS翻新技术。 华为在HDC2023大会期间发表,搭载鸿蒙生态的智能设施数量已冲破7亿,且已有220万开发者投身于鸿蒙的开发。这一数字的显著增长,也表明了开发者们对于鸿蒙生态的激情和信念,越来越多李洋一样的鸿蒙开发者、先行者、布道者在鸿蒙这个大舞台实现了本人的价值,拓宽了将来的倒退之路,并坚韧不拔地走上来,拥抱科技翻新的星辰大海,开启有限可能的旅程。

August 18, 2023 · 1 min · jiezi

关于harmonyos:直播合集HDCTogether-2023-精彩回顾收藏勿错过

HDC.Together 2023 主题演讲万象振兴,热潮磅礴,HarmonyOS 全面进化,迈入新纪元。以翻新扭转世界,以生态驱动将来。扬帆起航,就在此刻。新版本、新体验、新流量、新商业、新机遇。一起抓住趋势,乘坐时代的风波,共建 HarmonyOS 新世界。 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... HDC.Together 2023 开发者主题演讲 展现 HarmonyOS 开发的最新技术和工具,助力开发者实现翻新冲破,让您的利用在鸿蒙生态中失去更好的倒退。 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... HDC.Together 2023 技术论坛更多技术分论坛直播回看,请查看以下楼层↓↓↓ HDC.  Together 2023 Codelabs 材料包Codelabs 挑战如期而至,精彩赛题操作指南,官网现已上架,一文囊括你想看的,更有精彩流动等你加入! 点击获取【华为开发者大会2023(HDC Together)Codelabs材料包】 HarmonyOS 利用开发(新能力)本论坛面向 HarmonyOS 利用开发者,重点介绍 ArkTS、ArkUI、ArkUI 跨平台、元服务等开发框架新进展;率领开发者摸索高性能利用开发之旅,同时邀请到利用搭档分享性能晋升的实战经验 ;并且为开发者带来更丰盛的零碎新能力包含云服务、媒体、文件存储、数据管理、畅连通信、网络通信等。跟咱们一起登程,体验 HarmonyOS 利用开发新旅程吧! 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... HarmonyOS 翻新体验开发与案例分享介绍 HarmonyOS 的翻新场景体验开发实际,华为技术专家及其合作伙伴联结分享华为自有利用和三方利用开发和落地的成果,并展现单干厂商的优良实践经验。 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live...  HarmonyOS 利用高效开发 本论坛面向 HarmonyOS 利用开发者,重点介绍 HarmonyOS 利用开发工具新体验、新个性,联合利用开发者的实在案例,为大家带来技术赋能、代码开发、调试运行、性能优化及全方位测试的生产力工具技术分享,晋升开发效率! 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... HarmonyOS 利用开发(UX)介绍 HarmonyOS 全新个性全新体验,包含折叠屏 &平板利用体验、多设备设计、实况窗、元服务、交互事件归一等设计规范与开发指南,以及利用的流转、智慧语音管制、场景智能等智能座舱翻新体验。并通过自研利用和三方合作伙伴优良案例,分享如何高效设计与开发的优良实践经验。 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... HarmonyOS 端云凋谢能力面向鸿蒙生态的开发者,重点介绍 HarmonyOS 端云凋谢能力,端云一体化架构设计,HarmonyOS 全局化外围凋谢能力等,以助力开发者高效开发、疾速上线 HarmonyOS 利用,赋能开发者构建 HarmonyOS 利用独特竞争力。 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... 元服务:打造卡片外显、服务中转的新体验面向鸿蒙生态的元服务开发者,重点介绍元服务产品凋谢能力,分享标杆案例,助力开发者减少商业收益。 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... 鸿蒙生态智能设施开发新技术面向智能硬件开发者、解决方案合作伙伴,深刻介绍撑持鸿蒙生态设施高效开发的新技术,包含驱动扩大框架、内核内存优化及平安 TEEOS、电源治理和图形显示零碎新技术、设施分布式能力和利用、以及零碎设施开发语言和工具实际,帮忙智能硬件开发者疾速接入鸿蒙生态,高效开发多端协同、平安、高性能的智能设施。 观看直播回放https://developer.huawei.com/consumer/cn/training/course/live... HarmonyOS 原生智能,共筑 AI 生态介绍 AI 原生智能全新交互体验,应用服务散发新流量。包含业界 AI 的趋势,华为终端 AI 策略解读;天然对话交互带来体验变革和机会;HarmonyOS+大模型带来的化学反应;用意框架高效散发服务体系;控件 AI 化助力利用体验和开发。期待与每一位开发者和合作伙伴见面,共创凋敝的鸿蒙生态将来。 ...

August 17, 2023 · 1 min · jiezi

关于harmonyos:华为开发者大会2023云空间筑牢鸿蒙生态云基因

8月4日,华为开发者大会2023在东莞·松山湖举办,泛滥开发者及合作伙伴共赴盛会,见证鸿蒙生态的最新进展。在本届大会的HarmonyOS利用开发(端云能力)分论坛上,华为Drive Kit生态架构技术总监官宣云空间服务降级,赋能开发者高效开发,为鸿蒙生态利用注入“云基因”。 构建端云数据同步服务,为鸿蒙生态筑牢“云基因” 作为寰球第三大手机操作系统,HarmonyOS零碎自公布起,便广受关注,每一次的降级都有着颠覆性的意义。随着越来越多的设施、利用退出鸿蒙生态,开发者对鸿蒙生态的数据存储、同步、解决能力尤为关注。云空间服务正是带着这样的使命,通过为鸿蒙生态构建对立的数据存储和同步核心,解决端云数据割裂的问题,不仅简化了利用的开发成本,更是与利用独特为华为用户打造平安、极致的应用体验。 340+利用已接入云空间服务 如何妥善存储和治理用户数据,是构建利用时必须思考的重要一环。云空间服务凭借平安、高效、易用的特点吸引泛滥三方利用,现在已有超过340款利用接入云空间服务。以云记App为例,接入云空间服务后,其年数据存储量已达亿级,为超800万用户服务。自利用上线以来,在云空间的帮忙之下,始终守护用户数据安全,为用户提供安全可靠的应用体验。 便捷接入能力,云空间赋能利用极简开发 云空间服务致力于打造端云数据协同底座,让利用更聚焦于本身业务翻新,无需在其它方面过多投入。开发者无需集成同步SDK,即可间接调用同步服务。而华为云空间采纳的WiseWan极简网络和hQUIC协定,也可能大大降低时延,使传输速度更快,同步效率更高,同步服务更牢靠。在满足海量用户数据的存储、同步需要的前提下,还能提供便捷的接入能力,这对于很多利用开发者,尤其是初创团队来说,不仅可能大大降低自研开发、搭建服务器的老本,背靠云空间先进的隐衷爱护技术劣势,也能解决“后顾之忧”。接入云空间服务后,后端人力投入缩小达50%之多,助力利用更快获得商业胜利。 云空间服务为鸿蒙生态筑牢“云基因”,携手搭档共赴翻新、共享凋敝。华为欢送更多利用接入云空间服务,独特构建枝繁叶茂的鸿蒙生态。 理解更多详情>> 拜访云空间服务开发者联盟官网 获取云空间服务开发领导文档

August 15, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS课程尝鲜计划优享特权大礼包

报名入口:https://developer.huawei.com/consumer/cn/activity/90168904238...

July 12, 2023 · 1 min · jiezi

关于harmonyos:直播预告HarmonyOS-极客松赋能直播第六期产品创新从哪里来

July 10, 2023 · 0 min · jiezi

关于harmonyos:华为Harmony应用开发初探

HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设施零碎能力根底上,HarmonyOS提出了基于同一套零碎能力、适配多种终端状态的分布式理念,可能反对手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(挪动办公、静止衰弱、社交通信、媒体娱乐等)业务能力。 HarmonyOS提供了反对多种开发语言的API,供开发者进行利用开发。反对的开发语言包含Java、XML(Extensible Markup Language)、C/C++ 、 JS(JavaScript)、CSS(Cascading Style Sheets)和HML(HarmonyOS Markup Language)。 一、环境搭建依据官网材料介绍,咱们能够在Windows零碎或macOS零碎上,应用HUWEI DevEco Studio进行HarmonyOS和OpenHarmony的用户应用程序。 首先,到官网下载开发工具 HUAWEI DevEco Studio和SDK下载和降级,抉择本人零碎对应的版本进行下载,如下图所示。 而后,关上安装包进行装置即可。装置完后,当咱们启动DevEco Studio工具的时候,零碎提醒咱们须要装置Node,这是因为HarmonyOS应用程序也反对应用JS进行开发,咱们只须要依照提醒进行装置即可,如下图。 接下来,就是SDK的下载过程,SDK下载实现之后,就能够进行利用开发工作了。  二、疾速上手2.1 创立我的项目首先,咱们关上DevEco Studio开发工具创立一个手表利用我的项目。目前,轻量级智能穿戴设施Lite Wearable开发均采纳JS语言反对Empty FeatureAbility和List Feature Ability两种开发模板。开发框架以454px(这里px 是逻辑像素非物理像素)为基准宽度。所以,咱们创立一个轻量级智能穿戴设施的工程抉择Lite Wearable设施下的EmptyFeature Ability模板,如下图。 而后,装置要求填写我的项目名、包名、开发语言等内容,如下图。 配置的详细信息如下: Project name:是开发者能够自行设置的项目名称,这里依据本人抉择批改为本人项目名称。Bundle name:是包名称,默认状况下利用ID也会应用该名称,利用公布时对应的ID须要保持一致。Save location:为工程保留门路,倡议用户自行设置相应地位。Compile SDK:是编译的API版本,这里默认抉择API9。Model:抉择Stage模型,其余放弃默认即可。2.2 我的项目构造ArkTS工程目录构造 entry:HarmonyOS工程模块,编译构建生成一个HAP包。src > main > ets:用于寄存ArkTS源码。src > main > ets > entryability:利用/服务的入口。src > main > ets > pages:利用/服务蕴含的页面。src > main > resources:用于寄存利用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。对于资源文件的具体阐明请参考资源文件的分类。src > main > module.json5:模块配置文件。次要蕴含HAP包的配置信息、利用/服务在具体设施上的配置信息以及利用/服务的全局配置信息。具体的配置文件阐明,详见配置文件阐明(JS/ArkTS)。build-profile.json5:以后的模块信息 、编译信息配置项,包含buildOption、targets配置等。hvigorfile.ts:模块级编译构建工作脚本,开发者能够自定义相干工作和代码实现。build-profile.json5:利用级配置信息,包含签名、产品配置等。hvigorfile.ts:利用级编译构建工作脚本。JS工程目录构造 entry:HarmonyOS工程模块,编译构建生成一个HAP包。src > main > js:用于寄存js源码。src > main > js > MainAbility:利用/服务的入口。src > main > js > MainAbility > i18n:用于配置不同语言场景资源内容,比方利用文本词条、图片门路等资源。src > main > js > MainAbility > pages:MainAbility蕴含的页面。src > main > js > MainAbility > app.js:承载Ability生命周期。src > main > resources:用于寄存利用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。对于资源文件的具体阐明请参考资源限定与拜访。src > main > config.json:模块配置文件。次要蕴含HAP包的配置信息、利用/服务在具体设施上的配置信息以及利用/服务的全局配置信息。具体的配置文件阐明,详见配置文件阐明(JS/ArkTS)。build-profile.json5:以后的模块信息 、编译信息配置项,包含buildOption、targets配置等。hvigorfile.ts:模块级编译构建工作脚本,开发者能够自定义相干工作和代码实现。build-profile.json5:利用级配置信息,包含签名、产品配置等。hvigorfile.ts:利用级编译构建工作脚本。2.3 运行我的项目首先,单击顶部工具栏Tools>Device Manager,而后抉择Local Emulator,设置适合的Local Emulator Location存储地址,而后单击’+New Emulator’,如下图。 ...

July 8, 2023 · 1 min · jiezi

关于harmonyos:限时招募高校学生带你沉浸式体验HDCTogether-2023

July 7, 2023 · 0 min · jiezi

关于harmonyos:活动开启-以梦筑码-不负韶华-开发者故事征集令讲出你的故事有机会参加HDCTogether-2023

HarmonyOS面世以来,经验了3大版本迭代,零碎能力逐步完善,生态减速凋敝。一路前行,是开发者们点亮漫天星光。点滴奉献,聚沙成塔,开发者们正用代码扭转世界。 是幻想,激励咱们一路前行。在拂晓到来前,有人在迷雾中启程,有人在崎岖中奔跑,有人在未知中摸索,有人在窘境中保持,有人在挫折里涅槃。日与夜,颠倒是非。错与对,一直重来。受得住寂寞无双,方经得起似锦繁花。一度酷爱,一片将来。 故事每天在产生,能看到的,只是冰山一角。请来到灯光下、荧幕前,开发者们,本应鲜艳夺目。即刻起,以梦筑码 · 不负韶华 | 开发者故事征集流动正式开启。参加流动,写下你的故事,让咱们一起翻阅你的篇章,一起为你欢呼。 流动要求:故事要求1000字以上,保障实在、原创,回绝杜撰抄袭。投稿作品能够增加视频和图片,文件总体大小不超过10M。首先填写问卷进行报名,随后将文章投稿至:harmonyos@huawei.com,请将文章内署名作者的实在姓名和分割信息,并与问卷姓名和联系方式保持一致,不便信息确认。 注:如遇非凡状况,奖品无奈派发,咱们将为你更换等值奖品。由开发者撰写的文章,著作权归作者所有,华为有使用权。本流动最终解释权归华为终端BG所有。

July 6, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS极客松上分秘籍-高手们顶峰相见

HarmonyOS 极客马拉松2023 炽热进行中,咱们期待与各位开发者相聚一起,践行极客精力,发明有限可能! 咱们激励各位极客们自在组队,挥洒创意,用HarmonyOS 摸索挪动利用和服务的更多可能性! 优良的参赛者还能够与华为高管、技术大牛、顶级投资人深度交换,展现技术成绩和创新能力,取得多渠道推广宣传及集体HDE (HUAWEI Developer Experts)提名等机会。 HarmonyOS极客马拉松2023自6月15日开赛以来,受到了宽广开发者的关注和激情响应,开发者每天在流动社群畅聊技术、碰撞极客创意,激情地组队交换,为此咱们特地筹备了一份备赛秘籍。该秘籍蕴含三个局部,旨在帮忙开发者疾速查阅相干信息,省去检索工夫高效开发:一、选手参赛指引:次要蕴含流动指引、开发指南等二、专家赋能课程:次要蕴含线上学习课程、极客松赋能培训课程等三、 精选技术文章:次要蕴含HarmonyOS技术专家举荐的精选案例干货文章等 作为一名有现实有技术的开发者,你肯定不想错过这场属于开发者的狂欢!当初带着这份秘籍,将萦绕在脑海中的那些无暇顾及的火花变成事实,实现从0到1的冲破,开启一场充斥挑战和惊喜的旅程,咱们HDC.Together 高峰相见! 扫码进群,获取更多学习材料和备赛秘籍! HarmonyOS极客松“上分秘籍”一、选手参赛指引 流动报名指引:https://developer.huawei.com/consumer/cn/activity/50168594500... 鸿蒙生态利用开发白皮书:https://developer.huawei.com/consumer/cn/doc/harmonyos-bpsHar... 开发文档:https://developer.harmonyos.com/cn/docs/documentation/doc-gui... IDE下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio API参考:https://developer.harmonyos.com/cn/docs/documentation/doc-ref... HarmonyOS设计组件:https://developer.harmonyos.com/cn/design/ 示例代码:https://developer.harmonyos.com/cn/documentation/Samples 智能客服:https://developer.huawei.com/consumer/cn/customerService/ 优良案例CodeLabs:https://developer.harmonyos.com/cn/documentation/codelabs 常见问题解决办法FAQ:https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 二、专家赋能课程 HarmonyOS第一课:https://developer.harmonyos.com/cn/documentation/teaching-video HCIA:一小时疾速入门HarmonyOS利用开发:https://developer.huawei.com/consumer/cn/training/study-path/... 极客松备赛赋能培训课程(扫码进群,获取培训课程信息) 三、精选技术文章 老手指南类HarmonyOS利用开发学习路线参考:https://www.bilibili.com/video/BV19T41147Ek/ 手把手教你用低代码开发一个利用页面:https://developer.huawei.com/consumer/cn/forum/topic/02041120... 手把手教你开发一个元服务万能卡片:https://developer.huawei.com/consumer/cn/forum/topic/02021147... IDE类DevEco Studio 常见问题(继续更新):https://developer.huawei.com/consumer/cn/forum/topic/02031105... 开发技巧类HarmonyOS研习社(官网解读和开发技巧入口):https://developer.huawei.com/consumer/cn/forum/subject/210259... 其余精选文章入口华为开发者论坛精华帖:https://developer.huawei.com/consumer/cn/forum/block/applicat... 各模块常见问题及解决方案:https://developer.huawei.com/consumer/cn/forum/block/applicat... 成为一名即刻扭转世界的极客, Let's Create the Future Together!立即报名,在HDC.Together决战极客之巅!

July 4, 2023 · 1 min · jiezi

关于harmonyos:直播预告HarmonyOS极客松赋能直播第四期HarmonyOS开发经验分享

July 3, 2023 · 0 min · jiezi

关于harmonyos:直播预告HarmonyOS极客松赋能直播第三期一次开发多端部署与ArkTS卡片开发

June 28, 2023 · 0 min · jiezi

关于harmonyos:直播预告HarmonyOS极客松赋能直播第二期数据库与网络连接开发

June 26, 2023 · 0 min · jiezi

关于harmonyos:直播预告今晚7点来HarmonyOS极客松直播间与技术专家聊聊新技术

June 20, 2023 · 0 min · jiezi

关于harmonyos:HarmonyOS-极客马拉松2023-正式启动诚邀极客们用键盘码出无限可能

原文:https://mp.weixin.qq.com/s/p2yIs0rMmDE2BwhzsAtr7A,点击链接查看更多技术内容。 2023年6月15日, HarmonyOS极客马拉松2023开赛!期待各位开发者极客敌人一起,摸索挪动利用和服务的更多可能性!  HarmonyOS 极客松 2023 为你的“胡思乱想”保驾护航本次极客松采纳开放式命题的形式,旨在激励各位开发者以你们喜爱的形式,去做你们想做的事件,HarmonyOS为你的“胡思乱想”保驾护航。 无论你来自哪个行业、不论你身处何处,不管你是企业开发者、集体开发者、或者是高校学生…都能够在本次流动中纵情挥洒创意,和HarmonyOS一起碰撞思维的火花。  本次极客松报名通道于 2023 年 6月 15日正式开启,开发者可自行组队参赛。流动将继续2个月的工夫,包含线上初赛和线下36小时决赛,初赛通过甄选后,进入决赛的团队将被邀请至HDC.Together松山湖现场实现决赛并加入颁奖典礼。 立刻扫码进群,看赋能直播,干货好礼送不停 流动亮点:1) 数十位大咖导师亲自领导流动期间,HarmonyOS 高级架构师、资深技术专家、社区大牛等数十位导师亲自领导,为选手在代码实现过程中答疑解惑,还有顶级投资人深度点评,启发灵感。 2) 为优秀作品加持流传资源,晋升作品知名度优秀作品将有机会取得多渠道推广与宣传,以及深度采访和优良选手HDE提名(HUAWEI Developer Experts)。 3) 瓜分超30万丰富奖金 本次HarmonyOS极客马拉松总奖金30万元人民币(所有奖项奖金均为税前金额),其中一等奖高达10万元人民币。优秀作品,还有机会取得VC机构的投资。 4) 优良的获奖应届毕业生,将有机会取得华为岗位面试举荐机会咱们期待优良的高校应届毕业生参加流动,优良获奖应届毕业生将有机会取得华为岗位面试举荐机会。 5) Geek礼包定制款Geek周边礼包,参加流动即有机会取得(初赛提交作品即可获取geek大礼包)。放飞思路,挥洒灵感,一起发明有限可能!  参赛规定小组参赛:每组限度2-5人;决赛入围:由评委组对初赛作品打分,TOP12-15名入围决赛;决赛现场:决赛队伍至HDC.Together现场进行36小时编程; 评审规定本次流动的评比机制蕴含预选赛入围评比、决赛评审两轮评审环节,两个环节评比规定一样。评委依据以下维度,对合乎本次流动主题(HarmonyOS SDK进行利用/服务进行创新性开放性主题开发)的作品进行综合打分,总分(100分)= 技术性(35分)+ 创新性(25分)+ 性能齐备(10分)+ 实用性(10分) + 商业前景(20分): ① 技术性:应用3.1 Release版本的技术个性,对整体计划竞争力有显著的晋升(如元服务翻新体验、卡片分包和预加载、卡片快照、利用内共享库等)。(35分) ② 创新性:参赛作品的翻新水平,例如模式的翻新或相较于同类产品具备更好的翻新体验/体现。(25分) ③ 性能齐备:参赛作品的次要性能无Bug,体验晦涩,可理论演示,无进一步开发志愿的作品该项无得分。(10分) ④ 实用性:参赛作品在理论利用场景中的实用水平。(10分) ⑤ 商业前景:参赛作品在日常工作生存中可能发明较好的社会和市场效益,具备较为广大的商业前景。(20分) 报名通道:https://developer.huawei.com/consumer/cn/activity/50168594500... HarmonyOS期待与各位相聚一起践行极客精力,发明有限可能!

June 16, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS-极客马拉松2023-正式启动诚邀极客们用键盘码出无限可能

2023年6月15日, HarmonyOS极客马拉松2023开赛!期待各位开发者极客敌人一起,摸索挪动利用和服务的更多可能性!HarmonyOS极客松2023 为你的“胡思乱想”保驾护航本次极客松采纳开放式命题的形式,旨在激励各位开发者以你们喜爱的形式,去做你们想做的事件,HarmonyOS为你的“胡思乱想”保驾护航。无论你来自哪个行业、不论你身处何处,不管你是企业开发者、集体开发者、或者是高校学生…都能够在本次流动中纵情挥洒创意,和HarmonyOS一起碰撞思维的火花。本次极客松报名通道于 2023 年 6月 15日正式开启,开发者可自行组队参赛。流动将继续2个月的工夫,包含线上初赛和线下36小时决赛,初赛通过甄选后,进入决赛的团队将被邀请至HDC.Together松山湖现场实现决赛并加入颁奖典礼。扫码进群 报名参赛流动亮点1) 数十位大咖导师亲自领导流动期间,HarmonyOS 高级架构师、资深技术专家、社区大牛等数十位导师亲自领导,为选手在代码实现过程中答疑解惑,还有顶级投资人深度点评,启发灵感。2) 为优秀作品加持流传资源,晋升作品知名度优秀作品将有机会取得多渠道推广与宣传,以及深度采访和优良选手HDE提名(HUAWEI Developer Experts)。3) 瓜分超30万丰富奖金本次HarmonyOS极客马拉松总奖金30万元人民币(所有奖项奖金均为税前金额),其中一等奖高达10万元人民币。优秀作品,还有机会取得VC机构的投资。4) 优良的获奖应届毕业生,将有机会取得华为岗位面试举荐机会咱们期待优良的高校应届毕业生参加流动,优良获奖应届毕业生将有机会取得华为岗位面试举荐机会。5) Geek礼包定制款Geek周边礼包,参加流动即有机会取得。放飞思路,挥洒灵感,一起发明有限可能!参赛规定小组参赛:每组限度2-5人;决赛入围:由评委组对初赛作品打分,TOP12-15名入围决赛;决赛现场:决赛队伍至HDC.Together现场进行36小时编程;评审规定本次流动的评比机制蕴含预选赛入围评比、决赛评审两轮评审环节,两个环节评比规定一样。评委依据以下维度,对合乎本次流动主题(HarmonyOS SDK进行利用/服务进行创新性开放性主题开发)的作品进行综合打分,总分(100分)= 技术性(35分)+ 创新性(25分)+ 性能齐备(10分)+ 实用性(10分) + 商业前景(20分):① 技术性:应用3.1 Release版本的技术个性,对整体计划竞争力有显著的晋升(如元服务翻新体验、卡片分包和预加载、卡片快照、利用内共享库等)。(35分)② 创新性:参赛作品的翻新水平,例如模式的翻新或相较于同类产品具备更好的翻新体验/体现。(25分)③ 性能齐备:参赛作品的次要性能无Bug,体验晦涩,可理论演示,无进一步开发志愿的作品该项无得分。(10分)④ 实用性:参赛作品在理论利用场景中的实用水平。(10分)⑤ 商业前景:参赛作品在日常工作生存中可能发明较好的社会和市场效益,具备较为广大的商业前景。(20分)报名通道:https://developer.huawei.com/consumer/cn/activity/50168594500...HarmonyOS期待与各位相聚一起践行极客精力,发明有限可能!立刻报名,挥洒创意

June 15, 2023 · 1 min · jiezi

关于harmonyos:文件管理开发指南全新登场快来了解如何访问各类文件

原文:https://mp.weixin.qq.com/s/6WYd7Mxn6tA5MoEUr80tfQ,点击链接查看更多技术内容。 在利用开发的过程中,咱们常常会用到各种各样的文件,例如文档、图片、音频、视频等,如何治理和拜访这些文件?利用沙箱如何应用?利用如何抉择和保留用户文件?设施组网是否能共享和编辑文件? 如果你也有雷同的纳闷,快来看文件治理开发指南,一次解答你所有纳闷。 一、文件治理文档上新介绍文件治理,依据不同的文件类型,为开发者提供对应的开发领导。按所有者的不同,分为利用文件、用户文件和系统文件;按文件存储的地位不同,分为本地文件和分布式文件。 文件分类示意图 通过文件治理文档,开发者能够全面理解如何拜访和治理利用文件、用户文件。因为系统文件不须要开发者进行文件治理,文档中不开展介绍。同时,文档将介绍如何跨设施拜访文件。 ○ 文件治理开发领导:https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 二、利用沙箱,到底应该怎么用利用沙箱推出以来,开发者始终在问,“利用沙箱到底应该怎么拜访”、“我的文件怎么推送到沙箱”、“怎么找到我在沙箱里的文件”。 针对上述问题,咱们在指南里,提供了:● 利用沙箱目录的具体介绍,开发者能够理解利用可拜访的文件范畴和形式。● 利用文件拜访与治理的开发领导,包含利用文件拜访、利用文件上传下载、利用和文件系统空间统计。● 如何通过hdc工具向利用沙箱推送文件。● 利用文件分享开发领导,包含如何分享文件给其余利用和应用其余利用分享的文件。 ○ 利用文件开发领导:https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 三、利用怎么抉择和保留用户文件当用户须要在利用里分享、保留一些图片、视频时,须要应用FilePicker。FilePicker是零碎向用户提供文件(媒体文件除外)抉择的对立入口,防止用户向利用受权文件权限,确保文件应用权限最小化管制晋升利用平安。 针对不同类别的文件,指南中别离提供了领导。开发者能够参考领导,理解如何抉择、保留不同类别(图片视频、文档、音频)文件。 ○ 抉择与保留用户文件(FilePicker):https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 四、两台设施组网,怎么共享和编辑文件分布式文件系统(hmdfs,HarmonyOS Distributed File System)提供跨设施的文件拜访能力,实用于如下场景:● 两台设施组网,用户能够利用一台设施上的编辑软件编辑另外一台设施上的文档。● 户外拍摄的照片,回家关上平板间接拜访原设施拍摄的照片。 在应用hmdfs之前,开发者须要先实现分布式组网。将须要进行跨设施拜访的设施连贯到同一局域网中,同帐号认证实现组网。hmdfs在分布式软总线动静组网的根底上,为网络上各个设施结点提供一个全局统一的拜访视图,反对开发者通过根底文件系统接口进行读写访问,具备高性能、低延时等长处。 分布式文件系统为利用提供了跨设施文件拜访的能力,开发者在多个设施装置同一利用时,通过根底文件接口,可跨设施读写其余设施该利用分布式文件门路下的文件。例如:多设施数据流转的场景,设施组网互联之后,设施A上的利用可拜访设施B同利用分布式门路下的文件,当冀望利用文件被其余设施拜访时,只需将文件挪动到分布式文件门路即可。 分布式文件系统:https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 五、咱们期待您的反馈以上就是本期文档君为大家筹备的HarmonyOS文件治理开发指南上新内容,心愿可能帮忙开发者更高效地摸索、体验、上手HarmonyOS。 同时,咱们十分重视开发者的意见,欢送各位开发者在HarmonyOS利用开发官网踊跃反馈意见,帮忙咱们继续晋升文档体验。 咱们将继续改良文档体验、丰盛和欠缺内容,感激各位开发者的反对及信赖,您的称心是咱们继续晋升文档体验的指标和能源。 敬请期待HarmonyOS开发者公众号更多相干推送,获取最新文档和内容资源!

June 9, 2023 · 1 min · jiezi

关于harmonyos:对应用数据开发还有疑惑看这篇就够了数据存储管理通通掌握

原文:https://mp.weixin.qq.com/s/0YzFUfx-1ZdfOQhaeekwhg,点击链接查看更多技术内容。 数据管理能够做什么?利用数据的长久化怎么实现?如何实现数据库加密?在开发利用进行利用数据的解决时,您是否也会有这些疑难呢?当初,咱们推出了更为清晰欠缺的数据管理文档,帮忙开发者明确各种数据库类型的应用场景和限度,具体理解并轻松把握数据的存储和治理。一起来理解体验下吧~ 一、数据管理文档上新介绍数据管理为开发者提供数据存储、数据管理等方面的能力。例如,联系人利用能够应用数据管理的能力,将联系人数据保留到数据库中,同时保障数据库的平安、牢靠等。 本次上新的数据管理文档基于数据的存储、治理方面的能力,全面清晰地解说了利用数据长久化、数据的安全性和可靠性等具体实现,助力开发者轻松实现利用数据的相干开发。开发者可在HarmonyOS文档官网,间接搜寻想理解的场景和能力,疾速中转文档进行浏览。 数据管理开发指南:https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 二、如何实现利用数据长久化利用数据长久化,是指利用将内存中的数据通过文件或数据库的模式保留到设施上。内存中的数据状态通常是任意的数据结构或数据对象,存储介质上的数据状态可能是文本、数据库、二进制文件等。 以后,开发者能够依据不同的开发须要,抉择应用用户首选项、键值型数据库或关系型数据库来实现利用数据的长久化。 ○ 用户首选项(Preferences):通常用于保留利用的配置信息。数据通过文本的模式保留在设施中,利用应用过程中会将文本中的数据全量加载到内存中,所以访问速度快、效率高,但不适宜须要存储大量数据的场景。 ○ 键值型数据库(KV-Store):一种非关系型数据库,其数据以“键值”对的模式进行组织、索引和存储,其中“键”作为惟一标识符。适宜很少数据关系和业务关系的业务数据存储,同时因其在分布式场景中升高了解决数据库版本兼容问题的复杂度,和数据同步过程中抵触解决的复杂度而被宽泛应用。相比于关系型数据库,更容易做到跨设施跨版本兼容。 ○ 关系型数据库(RelationalStore):一种关系型数据库,以行和列的模式存储数据,宽泛用于利用中的关系型数据的解决,包含一系列的增、删、改、查等接口,开发者也能够运行本人定义的SQL语句来满足简单业务场景的须要。 文档链接● 通过用户首选项实现数据长久化https://developer.harmonyos.com/cn/docs/documentation/doc-gui... ● 通过键值型数据库实现数据长久化https://developer.harmonyos.com/cn/docs/documentation/doc-gui... ● 通过关系型数据库实现数据长久化https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 三、如何实现数据库的备份、复原和加密在零碎运行中,存储损坏、存储空间有余、文件系统权限、零碎掉电等都可能导致数据库产生故障。比方联系人利用的数据库损坏,导致用户的联系人失落;日历利用的数据库损坏,导致失落日历揭示等。为此数据管理提供了数据可靠性与安全性相干的解决方案和能力保障。 ○ 备份、复原性能:重要业务利用(如银行)数据失落,呈现重大异样场景,能够通过备份复原数据库,保障要害数据不失落。 ○ 数据库加密性能:当数据库中存储如认证凭据、财务数据等高敏感信息时,可对数据库进行加密,进步数据库安全性。另外,备份数据库存储在利用的沙箱内,当存储空间有余时,能够抉择删除本地的数据库备份,开释空间。 文档链接 ● 数据库备份与复原https://developer.harmonyos.com/cn/docs/documentation/doc-gui... ● 数据库加密https://developer.harmonyos.com/cn/docs/documentation/doc-gui... 四、咱们期待您的反馈以上就是本期文档君为大家筹备的HarmonyOS数据管理开发指南上新内容,心愿可能帮忙开发者更高效地摸索、体验、上手HarmonyOS。 同时,咱们十分重视开发者的意见,欢送各位开发者在HarmonyOS利用开发官网踊跃反馈意见,帮忙咱们继续晋升文档体验。咱们将继续改良文档体验、丰盛和欠缺内容,感激各位开发者的反对及信赖,您的称心是咱们继续晋升文档体验的指标和能源。请关注HarmonyOS开发者公众号更多相干推送,以获取最新文档和内容资源!

June 2, 2023 · 1 min · jiezi

关于harmonyos:DevEco-Studio-31-Release-动态共享包开发编译更快包更小

原文:https://mp.weixin.qq.com/s/qPvHZNZuLccAsviBcXtPWw,点击链接查看更多技术内容。 动静共享包(HSP)开发是DevEco Studio 3.1 Release版本带来的新个性,基于新的编译形式,提供运行态共享能力,能够无效放慢编译速度,减小HAP包的体积。 一、动静共享包引入以往应用的JSBundle化编译计划,因每个入口page都会打包成一个bundle包,且不反对运行态共享,当批改单个模块文件,须要整包从新编译打包,会导致编译耗费的工夫变长,也会导致HAP包的体积变大,从而影响了HarmonyOS利用开发效率和开发者体验。 Bundle化打包过程示意图 为了晋升开发效率和开发者体验,DevEco Studio提供模块化编译形式,模块之间互相独立编译,能够放慢编译速度。同时,为了缩小包体积,反对将多个模块通用的能力和资源提取,作为动静共享包(HSP)供其余模块或者利用应用。 二、什么是模块化编译模块之间互相独立编译,编译速度更快。 利用内模块化编译形式应用原生ES Module规定构建源码,解决了Bundle编译打包模式引入的问题,进而让工程中的资源文件,以独立模块的模式进行编译。当批改单个模块代码时,无需整包编译构建,编译的代码量会大大减少,从而放慢增量编译速度,让编译更快。 模块独立编译示意图 三、如何开启模块化编译API 9及以上版本的Stage工程中会默认开启模块化编译形式,开发者无需独自配置,编辑好代码后,间接点击Build Hap(s),就会以模块化的编译形式来进行打包。 新建我的项目,抉择Stage示例图 3.1 利用内共享HSP开发,让包体积更小基于Stage模型和模块化编译形式,如何进行动静共享包(HSP)的开发呢?一起来看以下介绍: 3.1.1 提供动静共享包模板,轻松创立动静共享包HSPHSP是能够用来共享资源和代码的动静共享包,为了不便开发者应用,DevEco Studio提供Shared Library动静共享包模板,开发者能够间接应用该模板,轻松创立HSP。开发者选中工程目录中任意文件,右键抉择New > Module,关上Shared Library模板。 Shared Library模板示意图 在HSP对应模块(如Shared_Library)中实现通用能力代码和资源的开发后,选中菜单栏的Build > Make Module‘Shared_Library’进行编译构建,即可疾速生成HSP。 编译构建示例图 生成HSP 3.1.2 利用内疾速援用HSP开发者可通过字段配置,将HSP共享给利用内其余模块应用,并且反对在运行态共享HSP。在应用方entry/feature模块的oh-package.json5文件中增加HSP模块来援用,以援用名为Shared_Library的HSP为例: HSP援用配置 在模块化编译形式的加持下,应用方的模块通过编译打包后,HAP包的体积将会显著变小,开发者就可将HAP包疾速装置在设施上来调试运行,晋升开发效率。 与此同时,DevEco Studio反对HSP预览,ArkTS/C++调用HSP的断点调试等性能,您能够进入HarmonyOS官网材料理解更多HSP的内容。

May 19, 2023 · 1 min · jiezi

关于harmonyos:不同设备如何统一语言编程平台高效开发本文为你揭秘

原文:https://mp.weixin.qq.com/s/8UHznZenc7A_UICta2bETg,点击链接查看更多技术内容。 随着数字化时代的倒退,手机、平板、PC、电视、智能手表、车机等智能设施的普及率越来越高,但不同设施往往搭载了不同的操作系统。面对不同的操作系统与开发框架,利用开发难度大、老本高;同时,不同设施之间交互匮乏、体验割裂,难以为用户带来一致性的利用交互体验。 HarmonyOS是一款面向全场景的分布式操作系统,可能兼容手机、平板、PC、智慧屏、智能手表、车机等智能设施。咱们晓得,HarmonyOS利用开发须要应用高级编程语言,包含TypeScript(以下简称“TS”)、JavaScript(以下简称“JS”)、基于TS加强的ArkTS等,还须要配套相应的工具链和运行时实现高效开发和运行。面对不同设施,开发者如何应用同一套利用框架开发利用,让用户取得对立的利用交互体验呢? 基于此,方舟编译器(以下称“ArkCompiler”)应运而生。ArkCompiler反对ArkTS/TS利用事后编译优化机器码,带来高性能的运行体验;同时,ArkCompiler的并发实例启动更加轻快,并且提供混同字节码能力,无效晋升了源码的安全性。ArkCompiler助力开发者更加高效、便捷、平安地开发HarmonyOS利用。 一、什么是ArkCompilerArkCompiler作为HarmonyOS利用开发的对立编程平台,蕴含编译器、工具链、运行时等关键部件,反对ArkTS、TS、JS等高级编程语言的开发、调试调优、运行等业务。 接下来,咱们来看一下ArkCompiler编译工具链与运行时的架构。编译工具链架构 ArkCompiler的编译工具链以ArkTS/TS/JS源码作为输出,将其编译生成为abc(ArkCompiler Bytecode,即方舟字节码)文件。 运行时架构 ArkCompiler运行时蕴含了执行引擎、内存管理器、语言内建规范库等部件,间接运行字节码文件,实现对应语言标准的语义逻辑。 二、ArkCompiler的性能亮点动静类型语言因为运行前无奈确定对象类型,须要等程序运行一段时间后,JIT Compiler(Just-In-Time Compiler,即时编译器)能力依据抓取到的运行信息明确对象类型并编译生成对应的优化机器码。 而动态类型语言则能够依据确定的对象类型,间接编译生成对应的优化机器码,启动即可取得高性能,二者的启动性能差别比较显著。 编译优化视角次要区别 基于JS拓展出类型概念的TS曾经成为了前十风行的语言,然而业界目前并没有间接运行TS的引擎,如需运行TS,要先将TS转换成JS,再通过JS引擎运行。那么,TS的类型信息也就在转换过程中抛弃了,运行时无奈接管类型信息并作相应的优化。然而咱们发现,大部分状况下,JS程序中的对象类型是繁多固定的,这也表明JS的对象类型大部分状况下放弃不变。TS的类型是不是也能够在代码运行前间接做编译优化呢? 2.1 业界JS引擎计划JS开发者间接把源码打到利用包里,当运行时,引擎解析JS源码须要先将JS源码编译成字节码,而后再执行字节码。引擎抓取分析一些运行时的信息,再应用JIT Compiler在运行时编译生成优化机器码,最初能力执行优化机器码,这样能力以比拟高的性能执行JS。 业界JS引擎计划 2.2 ArkCompiler的劣势高性能ArkTS引擎—AOT编译 咱们后面曾经剖析过,大部分状况下,JS的对象类型放弃不变,而TS又会携带对象类型。因而,ArkCompiler让ArkTS/TS可能持平动态语言的启动性能,其实就是利用语言里的类型信息,让ArkTS/TS像动态语言一样能够间接编译生成优化机器码。 Bytecode Compiler(字节码编译器)会生成带类型的字节码,AOT Compiler(Ahead-Of-Time Compiler,事后编译器)会依据类型字节码预生成相干的类型对象,联合PGO1的配置文件信息,进行编译优化最终生成对应的优化机器码。 ArkCompiler反对利用运行前就编译出优化机器码和字节码。当利用在挪动设施上首次运行时,就能够间接运行高性能优化机器码了。 三、ArkCompiler的并发亮点并发实例运行比照 3.1 业界JS引擎的Actor并发模型上图左侧是业界并发实例的运行状况,因为JS是一门单线程语言,JS引擎在设计之初也没有思考多线程运行的反对和优化。 从Actor并发模型的示例图中,咱们能够看出,每一个并发实例都创立了一个残缺的引擎实例来反对运行。它的劣势在于,类Actor的接口能够让开发者不须要关怀共享状态和锁,容易保护和测试,而且非常容易把并发实例迁徙成分布式的服务。不过在挪动利用的场景中,这样的实现也是HTML标准把Web Worker形容成启动慢并且内存开销大的次要起因。 3.2 ArkCompiler的Lite Actor并发劣势上图右侧是ArkCompiler实现并发的运行状况。ArkCompiler的Lite Actor的实现,本质还是Actor模型,然而通过共享过程内各并发实例之间的不可变对象,把基础设施分层和轻量化,在各实例之间重用了一些公共基础设施,让并发实例运行更轻快。ArkCompiler的实现中,新增一个并发实例只须要拉起相应独有的局部。 基于此,咱们和浏览器头部引擎做了一个比照,在肯定负载下,咱们的并发启动工夫和启动内存获得了显著晋升。依据试验数据表明,相较于业界的计划,Lite Actor并发实例启动工夫和启动内存均优化了50%。 四、ArkCompiler的安全性亮点字节码混同比照 4.1 业界JS引擎的安全性现行的JS引擎,往往采纳只有名称混同的UglifyJS2,利用包中的源码也是可见可调试,商业利用源码的安全性绝对较差。 4.2 ArkCompiler的安全性劣势在ArkCompiler中,Hap包蕴含了混同后的字节码,相较于间接携带源码,进步了开发者代码的安全性。 HarmonyOS的代码爱护,打包的是二进制的ArkCompiler字节码。即便通过ArkCompiler编译运行时提供的Disassembler反编译,也只有字节码能被看到,无奈间接批改调试运行。 五、总结目前,运行在ArkCompiler上的开发语言ArkTS,在TS的根底上次要拓展了申明式范式和状态模式的UI编程。往后咱们会在动态模式、并发、平安等方面继续加强,让ArkTS成为更卓越的利用开发语言。 面对IoT时代的倒退,咱们会联合HarmonyOS利用生态、开发体验和用户体验等方面的需要,让ArkCompiler与硬件、操作系统、开发框架、编程语言协同设计优化;同时,在多语言对立编译运行和多设施反对的根底上,ArkCompiler让HarmonyOS利用的开发和运行效率显著晋升。 将来,ArkCompiler在继续优化根底体验的同时,会更进一步联合HarmonyOS万物互联的需要,在跨端迁徙、多端协同等翻新场景,从编译器和运行时等方面提供底层的解决方案和优化机制,晋升分布式应用的开发和运行体验。 阐明:1. PGO即Profile guided optimization,是一种基于性能剖析(profiling)的编译优化技术。 2. UglifyJS是前端开发打包的最常用工具之一,蕴含JS解析器、代码最小化、压缩、丑化的工具集。

May 9, 2023 · 1 min · jiezi

关于harmonyos:面向万物智联的应用框架的思考和探索下

原文:https://mp.weixin.qq.com/s/tH1WcAhWwxmfU2FxKnT4ew,点击链接查看更多技术内容。 利用框架,是操作系统连贯开发者生态,实现用户体验的要害基础设施。其中,开发效率和运行体验是永恒的诉求,业界也在继续一直的倒退和演进。 本文重点围绕挪动利用框架,梳理其要害倒退脉络,并剖析其背地的技术演进思路以及目前的局限;同时,进一步联合万物智联的新场景和新生态,围绕相应的利用框架的设计和演进,分享集体在这个畛域的思考,实际,以及下一步摸索。 “万物皆有裂缝,那是光照进来的中央”– 莱昂纳德 · 科恩 1、具体案例剖析:ArkUI开发框架的实际,摸索和演进2019年,咱们开始思考如何构建新一代利用框架,重点围绕极简开发,高能效比,跨设施以及跨平台这几个要害的设计指标,逐渐演进出ArkUI以及相配套的语言,API等能力,并造成了鸿蒙生态主推的开发框架。接下来的内容将以ArkUI作为一个具体案例,来阐明这块相干的实际,摸索和演进。 1.1 整体概览ArkUI是一套申明式开发框架,它具备简洁天然的UI信息语法、丰盛的UI组件、多维状态治理,以及实时多维度预览等能力,帮忙开发者晋升利用开发效率,并能在多种设施实现活泼而晦涩的用户体验。同时可进一步扩大到多个OS平台。下图形容了ArkUI开发框架的整体视图: Figure 1 ArkUI开发框架整体视图 ArkUI的要害特色如下所示:a.简洁天然的申明式语法;b.高效的渲染管线以及平台一致性的渲染机制;c.高效的方舟编译器以及运行时;d.对立的跨平台API能力集以及扩大机制。 1.2 要害组成ArkUI的要害组成包含以下几个方面:ArkTS语言以及相应的申明式范式;UI要害能力(布局、组件、动效以及自适应、自定义能力);渲染管线;ArkTS编译器&运行时;可部署到轻量级设施的轻量化运行时;以及推动利用开发的生态交融设计。接下来别离开展阐明。 1.2.1 ArkTS语言&申明式范式ArkTS在TS(TypeScript)的根底上,扩大了申明式UI、状态治理等相应的能力,让开发者通过更简洁、更天然的形式开发高性能利用。 上面联合一个具体的示例,从利用开发的角度简要形容下基于ArkTS的申明式范式。 Figure 2 基于ArkTS的申明式范式的简要示例 上图所示的代码示例,UI界面会显示一个 “Hello World” 的文本以及一个 “Click me” 按钮。当用户点击“Click me”按钮时,字符串变量 myText 的值会从“World” 变为“ACE ”,文本最终显示为 “Hello ACE”。 这个示例中所蕴含的ArkUI申明式开发范式的根本组成阐明如下: 装璜器:用来装璜类、构造体、办法以及变量,赋予其非凡的含意,如上述示例中@Entry、@Component、@State都是装璜器。具体而言,@Component示意这是个自定义组件;@Entry则示意这是个入口组件;@State示意组件中的状态变量,这个状态变动会引起相应的 UI的主动刷新。 自定义组件:可复用的 UI 单元,可组合其它组件,如上述被@Component 装璜的Struct Hello。 UI 形容:申明式的形式来形容 UI 的构造,如上述 build() 办法外部的代码块。 内置组件:框架中默认内置的根底和布局组件,可间接被开发者调用,比方示例中的 Column、Text、Divider、Button。 事件办法:用于增加组件对事件的响应逻辑,对立通过事件办法进行设置,如追随在Button前面的onClick()。 属性办法:用于组件属性的配置,对立通过属性办法进行设置,如fontSize()、width()、height()、color() 等,可通过链式调用的形式设置多项属性。 具体而言,ArkTS在TS的根底上,做了以下几个方面的加强: 3.2.1.1 简洁天然的组件化形容机制这里次要包含通过Struct定义的自定义组件名字;通过build()办法提供的自定义组件的内容(可基于零碎的内置组件,或其余自定义组件来自由组合);以及通用的装璜器机制(以@开始的描述符)。具体到自定义组件而言,则是通过@Component装璜器来装璜的自定义组件类型,以便其余组件来应用。同时,还定义了组件的生命周期相干的回调函数。这些独特定义了自定义组件的基础设施。 3.2.1.2 多维状态管理机制状态治理次要是实现数据到UI的主动映射,以实现数据驱动UI的主动变更。下面例子中的通过@State装璜的myText即是状态治理的最简略的一种状况。理论利用开发中,则是须要多维度的状态治理。下图显示了ArkTS所波及的状态治理的整体视图,次要也是通过相干的装璜器来实现。 Figure 3 多维状态治理 一个利用能够有多个页面,每个页面能够有多个组件,不同组件之间能够有互相关联。另外,数据的起源以及影响范畴也能够有所不同。为此咱们定义了不同维度的状态治理,来解决不同的场景。 状态治理的范畴能够是组件内,组件间,页面级(LocalStorage),利用级(AppStorage);组件间能够是父子组件间的逐层传递,也能够是爷孙组件间跨层传递;传递形式能够单向传递(@Prop)或是双向传递(@Link);数据的类型能够是简略类型,也能够是简单类型;数据的起源/存储能够来自内存,长久化存储,环境参数,还能够是跨设施的分布式数据。这些构建了利用开发中所需的状态治理的基础设施,并简化了跨设施场景下的利用开发。 3.2.1.3 动静扩大组合机制后面的组件化形容,状态管理机制,再配合内置组件构建了UI的基础设施。某些场景下,还须要UI形容可能动静扩大以及组合,比方基于自定义DSL(Domain Specific Language)动静的内容构建以及刷新场景,典型的案例是京东的MCube, 阿里巴巴的手淘的DynamicX等。为此,咱们进一步扩大了ArkTS的语义,通过@Extend装璜器依据具体场景来动静增加/扩大组件的属性,通过@Builder装璜器来动静组合不同的组件,从而实现运行时动静构建UI视图的指标。 具体案例剖析细节,可看参考资料:京东APP Open-Harmony 化的跨端开发摸索:https://www.51cto.com/article/715754.html 另外,无关ArkTS的起源和演进,能够看参考资料: 浅析eTS的起源和演进 (注:eTS是ArkTS的前称)https://mp.weixin.qq.com/s/N2RPeboN8Fj0-8wBMZJ-7w 1.2.2 内置组件、自定义机制、动效、多设施适配上述的ArkTS以及申明式范式的根底介绍只是形容了申明式UI的根底语法以及根底框架,如果要实现残缺的UI能力则还须要其余要害组成,包含各种内置组件(容器组件、根底组件等),动效,以及自适应,自定义能力等。ArkUI在根底的图形Surface之上,构建了一整套的UI体系。 1.2.2.1 内置组件(容器组件,根底组件等)ArkUI内置组件大抵分为以下几种类型: 容器组件类:包含横向布局,纵向布局,重叠布局,绝对布局容器,二维的网格类型布局等;以及罕用的滚动列表(横向,纵向),侧边栏容器等; 根底组件类:包含按钮,文本,查看框,抉择框,进度条,导航等; 画布组件类:蕴含根底画布,各类线条形态门路等; 媒体&高级组件类:蕴含图片,视频等;富文本,Web组件,xComponent自绘制组件等; 通过这些内置组件以及相应的属性、事件处理能力的不同设置和组合,来笼罩利用开发中UI的典型场景。 3.2.2.2 自定义机制ArkTS的组件化形容机制,动静扩大组合机制,加上各种内置组件,形成了自定义组件的根底,再配合根底画布/xComponent等自绘制能力,能够构建出罕用场景的组件。不过,某些场景下,开发者还须要更细粒度的定制化能力,比方自定义测量/布局以实现任意形态的布局,以及在现有组件进一步定制化和扩大等。下图形容了ArkUI的自定义布局的根本流程: Figure 4 ArkUI自定义布局流程 如图所示,其中的onMeasure以及onLayout是框架层提供给利用开发者的接口,供开发者自定义具体的组件测量方法以及基于测量后果的布局机制,以实现任何的布局,比方瀑布流布局,环状布局等等。整体运行时流程大抵如下:渲染管线触发渲染流程->触动员效->触发布局->调用开发者实现OnMeasure函数,由开发者实现测量逻辑,由ArkTS侧调用框架层相应子组件measure接口->调用开发者实现OnLayout函数,开发者实现布局逻辑,设置所有子组件地位,由ArkTS侧调用框架层相应子组件layout接口->触发渲染。 不过,更灵便的自定义能力,比方在现有组件实现办法/属性级的定制化和扩大,更便捷的自绘制能力等方面还需进一步欠缺。 3.2.2.3 动效动效,即动画成果,实质上它也是一种状态驱动的UI变更。具体而言,动效是在起始状态和终止状态之间,退出了基于工夫的显示成果的平滑过渡。 从作用的对象角度,动效个别包含组件自身的动效(比方各种属性变动引起的动效),转场动效(组件增减/挪动,页面之间转场,共享元素在页面间转场);从开发的形式角度,包含隐式动效(通过设置相应的参数主动触发),显式动效(通过显示调用动画接口来指定因为闭包代码导致的状态变动插入过渡动效)。 ArkUI提供了上述场景所需的动效能力,通过联合相应的状态变量,相关联的UI组件/页面,以及相应的时序曲线算法函数来共同完成。 利用通过提供的申明式动画接口,进行动画业务逻辑组织;通过状态更新监听器,监听绑定动画的属性;动画对象提供动画参数存储能力的数据结构,包含动画持续时间、动画曲线、延迟时间等。组件树提供实在组件渲染节点,蕴含平移、旋转、缩放等成果渲染节点。动画引擎提供动画驱动能力。最终触发节点的从新绘制,通过渲染引擎进行界面更新。 ArkUI动效相干能力目前还比拟根底,相干时序/成果算法的丰盛度,以及动效的细粒度管制/自定义能力等都在继续加强演进中。 3.2.2.4 多设施适配(界面自适应,交互自适应等)ArkUI围绕多设施适配提供了系统化的多层次的解决方案。下图显示了其中的要害内容。 Figure 5 ArkUI多设施适配 如图所示,UI维度的多设施适配从上到下分为三个档次: 场景样例,布局能力,视觉交互:场景样例:联结用户体验设计对罕用组件的组合场景作出定义和输入样例代码,蕴含:顶部、入口、分栏、瀑布流、Banner、视频列表、视频宫格、图文、图片详情等; 布局能力:蕴含响应式能力:响应式组件(List 、Navigation、Grid、Swiper、Tabs、栅格布局组件),响应式能力(栅格零碎、自定义断点零碎、媒体查问);以及自适应能力:罕用自适应组件+自适应能力(暗藏、延长、缩放、均分、占比、拉伸、折行)等; 视觉交互:蕴含分层参数/主题格调:反对多设施上采纳不同的主题格调,深浅主题,自定义主题款式等,满足利用的个性化皮肤; 多态组件:反对对立的组件形容,不同的设施出现成果;交互归一:屏蔽设施差别对立交互逻辑,把不同的设施的交互输出汇合进行对立的事件归类定义,而后控件实现对应的对立响应。 在配套开发工具方面,通过DevEco IDE(Integrated Development Environment)的实时多设施预览等相干能力,进一步升高多设施开发成本。 当然,残缺的利用的多设施适配还需联合相应零碎的能力,比方零碎能力的运行期辨认判断,利用的模块化打包散发,以及面向不同设施的弹性部署等。 残缺内容,可看参考资料:鸿蒙生态利用开发白皮书https://developer.huawei.com/consumer/cn/doc/harmonyos-bps?ha... 1.2.3 渲染管线ArkUI整体渲染管线流程次要包含ArkTS源代码通过相应的编译工具链编译成中间代码(其间会应用到ArkUI的框架API),方舟运行时运行相应的字节码(也能够是AOT后的代码),最终通过ArkUI框架运行时实现残缺的渲染流程。 Figure 6 ArkUI渲染管线流程 上图显示了次要的渲染流程,其中有几个要害特色:1)扁平化的按需组合的渲染管线。通过申明式UI前后端的交融设计,开发范式中的UI形容根本能够间接映射到后端组件。同时,后端组件的相干属性基于组合式按需构建,进一步晋升构建速度并升高内存开销;2)数据依赖的主动收集。开发者只需通过相干的装璜器润饰好状态变量, ArkUI框架则会联合语言的相干个性(属性代理等机制)来自动识别并构建相应的依赖,实现相应的渲染刷新;3)通过方舟编译器以及运行时基于类型的编译优化以及AOT机制,实现语言执行性能的进一步晋升。 在上述根底上,2022年,ArkUI渲染架构又做了进一步降级: Figure 7 ArkUI渲染架构进一步降级 如上图所示,渲染架构次要进行了以下三个方面的降级: 1)多节点按需组合模型→单节点+属性按需组合模型      原先架构下组件树构建时,同一组件的不同属性是通过根底节点叠加相应的分外属性的节点来按需构建,简单场景下这容易造成节点过多从而引起性能以及内存累赘。新的架构下实现了单节点模型,附加按需的属性汇合以及相应工作处理器,从而大幅升高节点树的层级。另外,通过对相干工作处理器的拆散,也为后续进一步的细粒度并行化革新打下了相应的根底。 2)数据依赖组件级更新→细粒度函数级更新   原先架构下数据依赖只是跟踪到了自定义组件层级。新的架构下引入了最小化更新机制,对自定义组件中的build函数进一步合成为细粒度的函数的组合,并实现了将数据依赖间接定位到相应的子节点上,从而实现更精细化的更新,进一步晋升UI更新效率。 3)三颗树→一颗树   原先架构下多棵树存在的次要目标是实现差量比拟更新。通过最小化更新机制的引入,差量比拟就不是必要的,同时,再联合数据结构重构,可在相干节点上生成渲染信息,这样原先的三颗树合并成了一棵树,进一步晋升了组件渲染速度并升高内存。 1.2.4 方舟编译器&运行时方舟编译器&运行时的要害指标是要实现可对标动态类型语言(比方Swift/Java/Kotlin)的性能体验,以及和申明式框架深度交融从而实现高效的申明式开发。 Figure 8 业界JS/TS的典型性能问题 上图形容了业界JS/TS引擎的典型性能问题,次要包含三个方面:1)源代码运行时编译所带来的较多的启动开销;2)无奈间接利用类型信息带来的优化;3)须要运行时信息的热点,行为特色收集剖析所带来的预热开销。 Figure 9 方舟编译器&运行时解决方案 如上图所示,方舟编译器以及运行时重点通过以下形式解决上述问题:1)引入带类型语言字节码,并将源码编译过程从运行时提前到编译时;2)利用类型信息并联合PGO信息进行编译时综合优化;3)反对动静类型语言类型对象长久化,并优化机器码的类型对象重绑。 另外,在并行化方面,传统的Worker机制因为各自独立,信息不共享,启动和资源开销都比拟大。方舟运行时引入了轻量化Actor机制,通过公共的基础设施以及不可变对象的共享,实现了性能和内存的进一步优化,如下图所示: ...

May 6, 2023 · 1 min · jiezi

关于harmonyos:面向万物智联的应用框架的思考和探索中

原文:https://mp.weixin.qq.com/s/i-ddVaC0iBVXq4t12hz6-Q,点击链接查看更多技术内容。 利用框架,是操作系统连贯开发者生态,实现用户体验的要害基础设施。其中,开发效率和运行体验是永恒的诉求,业界也在继续一直的倒退和演进。 本文重点围绕挪动利用框架,梳理其要害倒退脉络,并剖析其背地的技术演进思路以及目前的局限;同时,进一步联合万物智联的新场景和新生态,围绕相应的利用框架的设计和演进,分享集体在这个畛域的思考,实际,以及下一步摸索。 “预感将来的最好形式,就是发明将来”– 亚伯拉罕 · 林肯 1、面向万物智联的利用框架的架构设计思考1.1 万物智联下的新场景,新需要 随着越来越多设施的智能化,新的场景以及新的需要也逐渐出现,次要包含: a.更多的不同状态的设施反对。包含各类屏幕(不同分辨率,尺寸,纵横比,折叠屏的折叠/开展切换,“刘海屏”等),以及各种交互模式(触控、键盘、鼠标、遥控器,表冠,语音,3D手势等)。 b.更多的不同能力的设施反对。包含各种芯片规格,各种RAM(Random Access Memo-ry)/ROM(Read Only Memory)规格(百KB级别,MB级别到GB级别),各种零碎能力规格等。 c.设施之间的交互。包含利用在设施之间流转,协同等。 除此之外,对利用开发者而言,还有两类十分重要的需要: Ⅰ、跨OS(Operating System)平台能力因为事实上多个支流OS的存在,如何无效的晋升可同时反对不同OS(比方iOS和Android等)的利用开发效率是个重要的需要。目前开发者次要还是依赖三方跨平台框架。有些利用开发者在某些场景下,因为原生框架所带来的成果体验不统一带来较大的适配老本,甚至在一些要害模块不应用原生利用框架的能力,而是从新设计一套具备跨平台一致性的计划。 Ⅱ、动态化内容部署能力如何将业务的内容在不违反相干规定的状况下迅速部署到客户端,以便业务疾速触达客户,也是大多数利用比拟通用的需要。目前次要是利用开发者通过设计相干框架能力来撑持,不必利用采纳计划各不相同。 这些对利用框架的设计都提出了新的要求,包含自适应能力、模块化能力,分布式能力,跨平台能力,动静内容更新能力等。当然,有些场景须要OS底层自身也要做相应的演进,比方可部署到更轻量的设施,分布式基础设施构建等。 1.2 目前利用框架的局限:纵观现有的各类计划,在新兴的场景和利用需要下,逐步呈现出肯定的局限性。 1.2.1 原生利用框架先说Apple。以Apple的iOS上的利用框架为例,它在面向开发者的简洁高效,面向消费者的天然晦涩,语言、框架、工具的以及软硬件的紧密结合,生态的管控等方面都是第一流的。Apple的生态是自闭环的,也是有明确边界的,这样的策略在Apple生态是一家独大时问题不大,但当事实上是多个支流OS生态并存,尤其随着万物智联的生态进一步扩大时,Apple的形式呈现出了肯定的局限性: 1)Apple的利用框架仅限于本身OS系列,比方SwiftUI只会关注iOS, iPadOS,macOS等,并没有思考如何在其它OS上实现肯定的复用能力。另外,对利用常见的利用内容动静更新的需要,Apple则是严格的限度,并没有在框架层面思考怎么在一个适合范畴内提供肯定的反对。 2)Apple的利用框架对系统设施有较高的要求,无奈撑持轻量化的智能设施(比方M级内存的设施等)。当然,这个也和Apple目前本身的定位相干。 再说Google。以Android为例,目前主推的Kotlin和以及Jetpack Compose根本是Google为了逐渐解脱Java,并对标Apple的Swift以及SwiftUI而研发的产物。Google的整体策略绝对凋谢,在架构上, Jetpack Compose做了分层解耦的设计,提供不同档次的API的开发能力供开发者灵便接入。另外,在跨OS平台维度,Jetpack Compose也做了肯定的思考,除了Android之外,通过JetBrains的推动, 也可反对PC平台(Windows/macOS)等。不过,目前Jetpack Compose在成熟度,以及多设施以及相干配套工具层面能力和Apple的SwfitUI相比还有不少差距。另外,后面所说的轻量化设施的反对,以及动态化内容更新的能力,也未波及。 1.2.2 三方跨平台利用框架三方跨平台框架也在一直演进。下图总结了典型的三方框架的要害特色: Figure 1 比照原生框架,典型三方跨平台框架的要害特色 另外,从语言角度,只管JS/TS具备较强的生态能力,业界也在一直的演进相应的引擎、工具链,但从对标原生语言的性能体验维度,还是有要害的有余,如下图所示: Figure 2 比照原生语言, JS/TS的现状以及有余 上图简要形容了JS/TS从编译到运行的大抵过程。只管业界在JS引擎方面继续在做优化晋升,比方重视高性能JIT能力的Google的V8以及Apple的JavaScriptCore, 重视轻量化、高效解析能力的Facebook的Hermes, 集体开发者Fabrice Bellard的QuickJS等,但如果要对标原生语言的运行体验,还有几个重点的维度有待进一步冲破: 1)联合类型信息的优化,和更精细化类型的引入;2)联合PGO(Profiling Guide Optimiza-tion)的AOT能力;3)更高效的并行化机制等。 1.3 如何设计利用框架,实现系统性逾越 如上所述,现有的原生利用框架以及三方跨平台框架都有本身定位/设计上的局限。那在万物智联的场景下,应该如何设计利用框架,能力较好的满足相干要求,并实现系统性逾越? 让咱们先回归根源,扫视一下利用框架要解决的外围问题。按递进关系,集体总结了三个维度的要害需要,如下所示: Figure 3 利用框架要解决的外围问题 对同一OS平台而言,利用框架要解决的外围问题次要有三类:1.开发效率;2.性能体验;3.跨设施能力。 而当事实上有多个支流OS平台长期并存时,跨平台的需要,或者更精确的说,如何进一步升高支流平台上利用适配的老本,就变的十分重要。它包含不同平台上的开发效率,性能体验,以及SDK包大小等因素。 除此之外,随着业务演进,动态化内容更新机制也演变为了十分要害的需要。 要构建可对标支流操作系统(e.g. iOS,Android)原生利用框架,并可能在面向万物智联的场景实现进一步逾越的新一代利用框架,集体认为,至多需围绕以下几个方面进行系统性的布局和设计:语言生态以及性能体验;申明式开发框架能力;跨设施自适应以及弹性部署能力;跨平台能力。 1.2.3.1 语言生态以及性能体验 iOS平台的Swift以及Android平台的Kotlin曾经各自造成了相应的平台的主导语言,并有相应的公司来主导。对于新的OS平台而言,发明全新的语言是一种形式,不过语言以及相干生态的倒退须要比拟长的周期(从正式公布到肯定规模的利用个别至多须要5年以上的工夫)。还有另外一种形式,则是选取现有的绝对中立的并有广泛应用根底的语言,并在此基础上演进。JS/TS即是这样的语言,它利用生态宽泛,也有相应的业界规范-ECMAScript来继续演进。 以下图片来源于RedMonk官网:https://redmonk.com/rstephens/2022/03/28/top-20-jan-2022/) 它显示了2012-2022这十年来的编程语言的热度排名状况(综合思考Github热度以及StackOverflow热度)。如下所示,JS/TS语言继续当先。  Figure 4 编程语言排行榜 - RedMonk 如之前剖析,要让JS/TS具备可对标支流平台原生语言的性能以及开发体验,须要在语言、编译器以及运行时实现要害的逾越:1)基于类型信息的编译以及运行时优化2)AOT能力,并可依据要害执行门路信息的反馈实现进一步优化3)高效的并行化机制4)申明式语法扩大,实现简洁天然的开发体验 以这些为根底,配合相应的优化的语言规范库,更细粒度的类型扩大,比方64位/128位等数值类型进一步联合硬件实现SIMD(Single Instruction Multiple Data)的减速等,就具备了能达成高效的语言执行性能的要害能力。另外,在高效开发方面,除了语言层面的申明式语法扩大,还能够进一步针对分布式场景对数据类型做相应扩大,晋升跨设施场景下利用开发体验。 1.2.3.2 申明式开发框架 申明式开发框架的外围就是以简洁天然的形式来形容UI,并通过数据的变动来驱动UI的主动变更。 从UI形容维度,它的要害组成如下(简洁天然是要害需要): a. 一套UI形容机制,包含根底构造语法,根底布局/组件/动效/事件处理/生命周期,以及组件化机制实现UI的积木式组合等 b.一套状态治理形容机制,包含数据和UI的关联,数据的共享和传递机制等 c.一套自定义扩大以及定制化机制,包含可自定义布局/绘制/动效,可对现有组件依据须要做定制/动静扩大等 从运行时维度,它的要害因素如下(性能体验是要害需要):a.高效的UI渲染管线,并可实现组件/属性按需组合升高内存开销 b.高效的状态治理/UI更新机制,依据数据变动精准定位刷新范畴 c.自适应UI能力,以及多态组件能力(同一UI形容在不同设施可主动实现不同UI成果,主动适配不同的用户交互模式等) d.平台无关的一致性渲染能力 另外,在配套的工具层面,比方IDE,需具备实时预览能力(包含双向预览,多设施预览,预览和调试交融等)。 1.2.3.3 跨设施自适应以及弹性部署能力 这里次要包含针对不同状态的设施的自适应(包含布局,控件状态等),不同能力的设施弹性部署(包含设施的提供API差别,零碎所需的资源差别等)。从架构设计而言,则需具备组件解耦,按需加载,以及轻量化等能力。 1.2.3.4 跨平台 这里次要包含平台形象层设计以及各个支流OS相应的适配实现,相干的工具链反对等。这样就能够基于一套主代码,部署到不同的OS平台上。其中的要害因素包含通用的API设计和实现(晋升利用代码的复用度),组件化机制(升高SDK大小),以及上述提到的平台统一化渲染能力等。

May 5, 2023 · 1 min · jiezi

关于harmonyos:面向万物智联的应用框架的思考和探索上

原文:https://mp.weixin.qq.com/s/G6o6xSAWroz0fJK7oShYLA,点击链接查看更多技术内容。 利用框架,是操作系统连贯开发者生态,实现用户体验的要害基础设施。其中,开发效率和运行体验是永恒的诉求,业界也在继续一直的倒退和演进。 本文重点围绕挪动利用框架,梳理其要害倒退脉络,并剖析其背地的技术演进思路以及目前的局限;同时,进一步联合万物智联的新场景和新生态,围绕相应的利用框架的设计和演进,分享集体在这个畛域的思考,实际,以及下一步摸索。 “但凡过往,皆为序章”- 威廉 · 莎士比亚 1、利用框架概览1.1利用,以及利用框架的根本组成 利用是用户应用操作系统/设施的入口,利用框架则是利用开发和运行的基础设施。用户通过各种各样的利用来和操作系统/设施交互,来满足相应的需要。以挪动平台为例,一个典型的利用以及绝对应的利用框架的根底组成大抵如下所示: Figure 1 典型的利用构造以及相应的零碎运行环境 一个典型的利用构造次要包含以下几个局部: 1)用户界面以及相应的业务解决逻辑。这里次要包含构建用户界面所需的UI(User Interface)组件,布局,动效,事件交互响应解决,所需的资源(图片/字体等),以及联合UI出现的业务逻辑解决等。从运行时的维度来看,它次要对应了零碎运行环境中的UI框架(含语言运行时),以及局部的零碎能力API (Application Programming Interface); 2)共享库。这里次要包含开发者封装好的SDK(Software Development Kit),以及应用的三方库等。从运行时维度来看,它次要对应了零碎能力API以及语言运行时,如果共享库波及UI的话,还对应了UI框架; 3)包清单文件。这里次要包含利用包的构造形容,权限申明等,它次要对应了零碎运行环境中的包治理,利用生命周期/权限治理/过程治理等。其中, UI框架的次要组成如下图所示: Figure 2 UI框架的次要组成 开发模型:对开发者提供的开发范式、UI组件/API能力、编程语言等,重点体现的是开发效率与难易水平; 运行框架:UI界面渲染及交互的根底能力框架,将开发者的程序运行在具体零碎平台上,包含利用整体渲染解决流程,语言逻辑执行流程,以及平台能力扩大机制,重点体现的是利用运行的性能体验; 平台适配:承载框架的具体操作系统或平台的适配层。 一般而言,利用框架中的包治理、生命周期/权限治理,和具体的操作系统关联较紧,并绝对稳固;能力API则是操作系统对设施能力的封装,次要影响利用应用设施的能力。UI框架以及相应的编程语言则是影响用户体验(包含开发和运行体验)的要害因素,尤其随着挪动平台的一直遍及以及挪动设施的差别,挪动平台上的UI框架(含编程语言)是业界一直演进的重点畛域。 1.2挪动平台上利用框架的演进 纵观十年来的倒退,总体而言,挪动平台上利用框架围绕着原生框架,三方跨平台框架交错倒退,并联合相应语言、工具的配套演进。下图形容了其中的要害框架/语言的演进概览。 Figure 3 挪动平台上要害语言/开发框架/工具演进概览 图中有几个要害节点: 1) 2013年,Facebook公布的React.js第一次综合的将数据绑定,虚构DOM(Document Object Model)等机制引入前端开发框架设计中。开发者只需申明好相应的数据和UI的绑定,之后由框架来跟踪数据的变动,并通过虚构DOM树的比照找出变动点,从而实现界面的自动更新,而无需开发者手动基于DOM 编程。 2)2018年,Google公布的Flutter则是个重要的分界点。Flutter交融了Dart语言,是第一个深度交融了语言的较为残缺的申明式开发框架,实现了齐全通过数据驱动的UI变更。另外,Flutter通过基于Skia的自绘制引擎实现了高性能的跨平台的平台一致性的渲染能力,并提供了Hot Reload机制晋升开发测试体验。不过,Flutter的整体设计哲学偏差底层的灵活性 – 次要通过底层的细粒度的能力供开发者自由组合,另外,Google对Dart语言的简洁度的改良较少,整体上开发的简洁度以及对用户的友好度绝对有余。 3)2019年,Apple SwiftUI的推出,意味着支流OS的原生利用框架开始逐渐往申明式开发方式迁徙。SwiftUI推动了Swift语言个性扩大实现了更加简洁天然的UI形容,并通过XCode开发工具的所见即所得的高效预览能力进一步晋升开发效率。同时,SwiftUI也是真正意义上开始通过一套框架,逐渐对立Apple生态中的不同的设施/OS上的利用开发。 另外,2019年Google将更简洁的Kotlin语言降级为Android首选的编程语言,并在2021年推出基于Kotlin的UI框架Jetpack Compose, 同时联合开发工具Android Studio逐渐往多设施以及跨平台演进。 总体而言,挪动端利用框架的演进蕴含以下几个要害特色:1)从命令式UI开发逐渐演进到申明式UI开发2)UI和编程语言的交融从绝对涣散演进到逐渐严密3)开发范畴从单设施演进到多设施,从单平台演进到多平台 接下来的章节会别离围绕跨平台框架,以及原生利用框架逐渐开展,梳理其具体的演进脉络。 1.2.1 跨平台框架因为W3C( World Wide Web Consortium)规范的遍及以及Web人造的跨平台能力, 跨平台框架次要是基于Web或Web的衍生技术。 最早试图补齐Web跨平台能力是一家叫做PhoneGap的公司,前面被Adobe收买,2012年以Cordova的我的项目名开源公布。过后的W3C规范更多涵盖的是页面渲染,而设施相干能力的规范十分缺失,PhoneGap的指标则是围绕着“Phone”补齐这方面能力“Gap” – 它定义了一套挪动平台上罕用的设施能力的JS API,并基于JS引擎设计了一套扩大形式来实现不同平台上的API,同时联合零碎的Webview,配套相干零碎整合以及打包工具,部署成相应平台上的利用格局在指标操作系统平台上运行。PhoneGap肯定水平上促成了Web在挪动设施上的倒退,然而它没有解决Web引擎自身的体验问题。过后的Web引擎(零碎自带的Webview),尤其是Android平台上,能力较弱,并缺失硬件加速,略微简单的利用体验较差。针对这些问题,2014年 Intel开源技术核心推出了Crosswalk我的项目,在Chromium内核根底上,针对挪动平台上Web利用,做了进一步解耦和性能优化(包含硬件加速,包体积优化,以及针对游戏专门设计一套渲染门路等),并联合了Cordova补齐相干API能力,构建了可独立打包演进的Web引擎,性能体验失去了较大的晋升。而且,通过独立打包,也解决了因为Android零碎的碎片化,Webview的版本不一,从而引起的利用体验(包含渲染能力和性能)不统一的问题。 Crosswalk公布一年左右就吸引了近千款利用基于Crosswalk构建,其中无数款利用都达到了超过百万级的下载量。不过后续因为Intel在挪动平台上的策略调整,没有进一步演进。但这块的要害思路,后续或多或少在业界看到了相干的影子,比方Google后续推出的可独立降级的ChromeWebview,以及国内各互联网公司各自构建的WebView(腾讯的X5内核,阿里巴巴的UC内核等)。 Cordova+Crosswalk,肯定水平上晋升了基于Web的跨平台框架所需的API能力以及渲染性能,不过还有几个方面,还须要继续晋升: Ⅰ、开发范式/前端框架规范的Web还是一种“半申明式”的开发方式,即通过HTML(Hyper Text Markup Langua-ge), CSS(Cascading Style Sheets)来形容整体页面构造和款式,但当要扭转其中的界面元素时,开发者须要基于W3C DOM API,通过具体编程,来实现其中相干节点的定位以及增删改。当所面对的界面交互越简单,所关联的数据越多,开发者累赘就越重,也越容易出错。 ...

May 4, 2023 · 1 min · jiezi

关于harmonyos:HarmonyOS-31加持-HUAWEI-P60系列实力和颜值并存称霸

就在前不久,华为公布了搭载HarmonyOS 3.1零碎的HUAWEI P60系列,粗劣内核搭配典雅外观,一亮相就取得了泛滥用户的青睐。而笔者拿到真机进行上手后,发现HarmonyOS 3.1在UX交互体验和视觉感观的打磨上都下足了功夫,包含了零碎动效的全面优化,图标圆角细节的打磨,个性化AOD随心设置等等。接下来就让笔者为大家介绍一起HarmonyOS 3.1到底都带来了哪些降级和扭转。 视觉触觉双降级 HarmonyOS 3.1动效全面优化 HarmonyOS始终致力于打造晦涩的用户体验,其中丝滑的动效设计是十分重要的一环。 最新的HarmonyOS 3.1在利用启动退出过程中,通过施展动画物理引擎劣势,将利用启动时手滑的过程也整合至物理引擎内,使跟手、抬手、动画造成一个有机的整体,达到了整个操作过程中动画的平滑晦涩。 在新版本的动画设计上,零碎会依据手指地位的点,主动生成一段平滑的曲线,通过限度每一帧画面间变动的幅度,防止曲线呈现突兀的“毛刺”。从人因角度,就是将每帧的变动幅度限度在一个能够承受的范畴内,来达到一种人眼察看时天然间断的视觉感触。 此外,还有一个细节的变动点是HarmonyOS 3.1上对动画的时长做了从新设计。动画如果时长太短,往往会让人感觉它闪跳渐变,而如果时长太长,又会让人感觉它迟缓拖沓。据悉,HarmonyOS的研发团队从反馈及时性、晦涩感、利用加载速度等多个维度综合梳理出了正当的时长范畴,再进一步通过零碎的物理引擎在范畴内依据用户操作的手速、滑动间隔等因素动静计算出最合适的时长,打造出最合乎用户直觉的动画变动速度。 最初,HarmonyOS 3.1也带来了可打断的动画。这个性能顾名思义,就是用户在误触利用想要疾速敞开时,零碎会将手的操作与以后动画的状态进行实时计算与整合,绘制出退出利用的动画成果。整个操作过程零打碎敲,用户会有“指哪打哪”的晦涩体验。 图标圆角圆滑一点点 视觉显示粗劣一点点 在HarmonyOS 3.1上笔者发现了桌面图标和万能卡片变得更加粗劣。原来新版本对图标圆角边缘弧线进行了粗疏的批改,让图标圆角的过渡更圆滑,放大观看也不会呈现锯齿转角。肉眼或者很难看出细节上的不同,但整体视觉效果绝对就会更难受,屏幕画面也会更清晰,让视觉效果更上一层楼! 熄屏显示一镜到底 共性设置随心切换 在这次HarmonyOS 3.1的降级中,共性AOD显示局部尤为亮眼。首先咱们能够筛选本人喜爱的照片,在HarmonyOS 3.1所提供的多款视窗中抉择本人最中意的那一款进行搭配,设置成专属本人的熄屏显示。手机解锁后,HarmonyOS 3.1还会通过一镜到底的形式进入性能页面,完满实现顺滑过渡。除了共性熄屏显示,3D动静天气揭示也是另一个亮眼。HarmonyOS 3.1将天气的状态绘制成了3D动态效果,设置成熄屏状态后,咱们仍然能通过手机屏幕实时看到到里面环境天气的变动,近距离感触白天和夜晚,晴天和雨天的交替变动。 从上述用户界面细节打磨的更新来看,笔者感触到了HarmonyOS 3.1对用机过程中细节的用心雕刻。HarmonyOS通过多个版本的迭代,曾经日趋完善和成熟。不难看出从这个版本开始,华为开始逐渐打磨交互界面的细节,重视用户的理论应用感触。不晓得各位新机用户是否曾经感触到了HarmonyOS 3.1所带来的这些诚意满满的小细节呢?

April 27, 2023 · 1 min · jiezi