-
11月16日,华为开发者布道师技术沙龙·西安站将在西安交通大学创新港校区举办,将由华为云、鸿蒙和AI领域的技术专家做产业前沿规划的宣讲,同时,来自西安6所高校11位教师开发者布道师将分别从产学合作课程建设、融合产业新技术的创新项目和大赛获奖作品案例三个方向分享他们与华为合作的经验、收获。这是一场知识和经验交融的盛会,是高校师生深入了解华为生态技术,探寻合作机会的绝佳平台,精彩不容错过。诚邀西安区域和周边高校师生报名参与,期待在西安与您相遇!报名链接:cid:link_0
-
星盾安全架构:鸿蒙系统引入了全新的星盾安全架构,该架构实现了生态纯净、隐私可控以及数据高安的安全使用体验。它改变了传统的隐私管理模式,从“管权限”转变为“管数据”,例如在发送图片时,系统仅授予应用所需图片的权限,而不是整个相册的权限,从而防止了数据的不必要接触和潜在泄露。应用管控中心:鸿蒙系统提供了应用管控中心,能够智能识别应用的风险行为,并给出将其放入应用管控中心的提示,以便在更安全可控的环境下调用。对于被加入管控的应用,系统会通过空白信息、模糊定位等方式隐藏或禁用真实敏感的用户数据,并限制应用弹框,确保应用在安全受控的前提下正常运行。隐私保护功能:鸿蒙系统提供了图片隐私保护功能,可以在分享照片时去除图片的位置信息和拍摄数据。此外,还有AI隐私保护功能,可以自动识别并一键打码身份证、银行卡号、车票信息、头像昵称等敏感信息,防止隐私泄露。系统级文件加密分享:鸿蒙系统支持系统级的文件加密分享机制,用户可以在手机或平板上对文件进行加密,只有授权的用户才能打开,这种系统级的分享机制不依赖应用,不限分享渠道,并支持多种文件类型。安全认证:鸿蒙系统的安全能力获得了行业最高等级的安全认证,鸿蒙内核获得了国际CC EAL6+证书,这是业界通用操作系统内核领域首个6+等级认证。整个系统还获得了中国CCRC EAL5+认证,是业界唯一获得此认证的操作系统。隐私灯功能:鸿蒙系统推出了全新的隐私灯功能,能在状态栏明确提示用户当前有应用正在使用麦克风、摄像头或地理位置,并能做到全局的实时显示,有效防止被应用覆盖,确保用户能够实时了解应用正在使用的敏感权限。应用权限管理:鸿蒙系统全面梳理了所有系统授权,禁止开放了9类不合理权限,包括读取已安装应用列表、访问短信、访问存储文件等,确保应用只能访问特定权限,保护用户数据的安全和私密性。分布式架构:鸿蒙系统的分布式架构支持多种设备间的无缝协作,允许手机轻松连接到其他设备,实现资源共享和跨设备的任务处理,同时确保了数据在不同设备间的安全传输。微内核设计:鸿蒙系统采用微内核设计,有效防止了外部攻击,并且通过形式化方法,重塑可信安全,提供更强的安全特性和低时延等特点。数据生命周期保护:鸿蒙系统参照数据的风险分级,提供了基于全生命周期的数据保护能力,包括数据的生成、存储、使用、传输和销毁等阶段,确保数据在各个阶段的安全。
-
一年一度属于开发者们的节日如期而至祝所有开发者们1024程序员节快乐愿你们的变量永远不溢出循环永远不陷入死锁,代码逻辑清晰无bug在这个特别的日子里让我们跟随几位优秀开发者听听他们的编码趣事和1024特别祝福video听完了华为云和他的开发者朋友们的祝福还有一群华为云的老朋友有话说他们中加入华为云生态最久的已经有2000多天一路走来,他们与华为云携手相伴在华为生态中大放异彩1024,码客聚会,云上跃迁一起走近华为云和他的开发者朋友们的精彩故事文末更有1024双重福利等你来领~(Tips:扫描图片底部二维码可查看故事详情)1024福利来袭:免费领取云主机,随时随地开发更便利值此1024程序员节,华为云开发者联盟为大家带来特别福利,点击链接加入华为开发者空间,免费领取您的专属云主机。华为开发者空间,汇聚鸿蒙、昇腾、鲲鹏、GaussDB、欧拉等各项根技术的开发资源及工具,致力于为每位开发者提供一台云主机、一套开发工具及云上存储空间,让开发者基于华为根生态创新。分享文章并留言,抽送华为云云宝全套手办即日起分享微信文章(点击查看)至朋友圈,并在微信文章留言互动,我们将在留言区随机抽选5名开发者各赠送华为云云宝全套手办1套。中奖小Tips:留言分享你的开发故事or你印象最深的编码时刻,更容易被选中哦~
-
华为云开发者日·南京站来啦!参加“仓颉鸿蒙应用开发初体验”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】仓颉鸿蒙应用开发初体验【活动时间】2024年10月25日-10月31日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“仓颉鸿蒙应用开发初体验”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
-
参考书籍资料:《鸿蒙操作系统设计原理与架构》 (李毅,任革林)布道活动地点:东北大学(浑南校区)
-
华为云bilibili官方账号在今年六月底发布了视频 【盘古研发大模型重塑CodeArts,支持鸿蒙应用智能高效开发】 ,演示了CodeArts Snap在 根据原型图生成ArkUI代码 和 Java代码转为ArkTS代码 上的功能,但是我今天试了一下,CodeArts Snap在ArkTS代码方面的回答依然不是那么让人满意,更别提那个视频中展示的内容了。这个情况是因为ArkTS目前仍在更新中吗?还是有其他的什么原因?
-
华为云开发者日·武汉站来啦!参加“仓颉鸿蒙应用开发初体验”体验项目提出你的建议或使用体验有机会获得开发者盲盒礼包惊喜不容错过,快叫上小伙伴一起来参加吧~【体验项目】仓颉鸿蒙应用开发初体验【活动时间】2024年10月16日-10月20日【参与方式】直接在此活动帖下方回帖提建议/提建议即可比如对产品功能的改进建议、对活动流程的感想、对现场活动的感悟等等PS:不要少于30字哦~【获奖规则】奖项设置有效回复楼层评选条件获奖名额激励礼品优质建议奖20对产品功能有改进价值的建议1名开发者盲盒礼品价值50-100元积极反馈奖20优质建议奖轮空的情况下进行抽取每满20层抽取1名开发者盲盒礼品价值50元【活动规则】1、本帖的回帖建议不少于30字,仅限于对“仓颉鸿蒙应用开发初体验”体验项目,其他项目建议不参与此次活动,否则将视为无效内容。2、本次活动将根据实际参与情况发放奖励,包括但不限于用户百分之百中奖或奖项轮空的情况;以上奖品均为实物奖品,具体发放视出库情况而定;3、活动预计于结束后七天内完成奖项公示,并于结束后15个工作日内完成邮寄。【温馨提示】1、请务必使用个人实名账号参与活动(IAM、企业账号等账号参与无效)。如一个实名认证对应多个账号,只有一个账号可领取奖励,若同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励。2、所有获得奖品的获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励。
-
鸿蒙千帆起,越来越多的开发者启动鸿蒙原生应用开发,开发者创新中心提供全面的合作资源与支持服务,从了解、到学习评估、到开发上架以及技术支持,帮助不了解鸿蒙应用开发的伙伴快速转身、快速具备鸿蒙应用开发的能力。诚邀您加入鸿蒙生态,开启鸿蒙原生应用开发!直播链接:cid:link_0Q:鸿蒙应用的市场分析工具有哪些?是否有配套用户行为分析工具?A:在 HarmonyOS 中,开发者可以通过集成 Huawei Analytics Kit、Firebase Analytics、Google Analytics 或 Mixpanel 等分析 SDK 来实现用户行为分析。此外,还可以定义自定义事件、存储和处理数据、并使用数据可视化工具(如 Tableau 或 Power BI)来深入分析用户行为数据。这些技术和工具帮助开发者理解用户的使用模式,优化应用体验。Q:HarmonyOS 的元服务有哪些优势A:免安装,更轻量化地将服务带给用户,一键服务直达,将用户感兴趣的内容前置、外显。跨端转移,多终端设备间无缝流转。情景智能卡片推荐,随心定制、更懂用户。支持多端协同,如手机用作文档翻页和批注,配合智慧屏显示完成分布式办公;手机作为手柄,与智慧屏配合玩游戏。Q:鸿蒙开发者有哪些市场需求岗位?职业发展路径如何规划?A:从市场调研数据来看,2024年鸿蒙开发相关岗位的需求同比增长超过30%,尤其在智能设备开发、用户界面设计和系统安全等领域表现尤为突出。这些岗位不仅提供了丰厚的薪资待遇,平均月薪达到2,0000至30,000元。Q:HarmonyOS后续发展方向是怎么样的?A:HarmonyOS的核心愿景是实现万物互联,而HarmonyOS NEXT在这一点上做得更为彻底。 未来,随着物联网设备的普及和5G技术的进一步成熟,HarmonyOS NEXT将在智能家居、智慧城市、智能交通等领域发挥更大的作用。Q:鸿蒙的微内核设计相比于传统内核有哪些优势?A:鸿蒙操作系统采用了微内核架构,与传统宏内核架构相比,微内核具有更轻量、更安全、更灵活等优点。Q:开发者创新中心提供的合作资源具体包含哪些类型?A:华为开发者创新中心赋能产教融合,提供体验、学习、实践、职业发展一站式平台。通过“技术科普、互动体验、动手实操“多元化的展示方式,培养学生的动手实践以及创新能力,助力院校培养高水平应用型学生,制定并提供人才培养的解决方案。详情请查看:https://bbs.huaweicloud.com/blogs/346023Q:arkTS可以直接在仓颉里面使用吗?A:在 OpenHarmony 系统上,ArkTS 具备完整广泛的生态,为复用 ArkTS 生态,仓颉支持与 ArkTS 高效跨语言互通。 仓颉-ArkTS 互操作基于仓颉 CFFI 能力,通过调用 ArkTS 运行时接口,为用户提供库级别的 ArkTS 互操作能力。 一、使用场景: 1.在 ArkTS 应用开发仓颉模块:把用户仓颉代码封装成为 ArkTS 模块,能够被 ArkTS 代码加载和调用。 2.在仓颉应用里使用 ArkTS 存量库:在仓颉代码里创建新的 ArkTS 运行时,并加载和执行 ArkTS 的字节码。Q:如何在鸿蒙操作系统中实现设备间的通信?A:鸿蒙操作系统提供了多种API来实现设备间的数据共享和交互,主要包括以下几个方面:分布式数据管理:鸿蒙的分布式数据管理API允许开发者在设备间同步和共享数据,这些数据可以存储在分布式数据库中,并由各个设备共享和访问。远程调用与消息传递:通过远程调用(RPC)和消息传递机制,开发者可以在不同设备间进行数据交换和命令传递。这使得一个设备可以控制或获取另一个设备上的数据或执行某些操作。数据虚拟化与共享:鸿蒙还提供数据虚拟化和共享的API,如虚拟卡片、虚拟列表等,这些可以帮助开发者在多设备间同步和展示数据。安全与隐私保护:在设备间共享数据时,安全性是非常重要的。鸿蒙提供了强大的安全机制来保护数据的隐私和完整性,包括数据加密、访问控制等。多设备协同与任务流转:鸿蒙的API还支持多设备协同工作和任务流转,如任务接力、多设备同时编辑等,这需要设备间紧密的数据交互和同步。使用这些API,开发者可以轻松地实现设备间的数据共享和交互,从而提供更加丰富和无缝的用户体验。同时,鸿蒙操作系统也为开发者提供了许多工具和文档,以简化开发过程和提高开发效率。Q:鸿蒙系统有哪些开发框架?A:ARKUI,ARKUI-XQ:鸿蒙系统对游戏开发者有哪些特别支持?开发者如何参与鸿蒙生态的共建?A:主流的游戏引擎如cocos,unity已经完成了鸿蒙适配,支撑游戏开发者可以快速的将自己的游戏进行鸿蒙适配。Q:鸿蒙应用开发语言主要有哪些?A:鸿蒙应用开发主要使用ArkTS作为应用开发语言,它提供了简洁自然的声明式语法和组件化机制,为开发者带来易学、易懂、简洁开发的优质体验1。此外,鸿蒙系统还支持其他语言,包括Java、C/C++、JS和Kotlin23。Q:如何能成为鸿蒙合作伙伴?A:1.注册华为企业开发者账号、2.申请加入合作伙伴、3.审核企业资质、4.签署合作协议、5.产品认证/申请认证、6.成为合作伙伴。Q:鸿蒙生态与其他操作系统生态的竞争优势有哪些?A:技术先进性:鸿蒙系统采用微内核设计,具有更高的安全性和稳定性。 与传统的宏内核系统相比,微内核系统在资源占用和运行效率上具有明显优势。 此外,鸿蒙系统还采用了分布式技术,能够实现设备间的无缝连接和协同工作,为用户带来更好的体验。Q: ArkCompiler有哪些应用场景/优势?A:ArkCompiler是华为自研的统一编程平台,包含编译器、工具链、运行时等关键部件,支持高级语言在多种芯片平台的编译与运行,并支撑应用和服务运行在手机、个人电脑、平板、电视、汽车和智能穿戴等多种设备上的需求。Q:前端开发和flutter兼容吗?A:兼容Q:鸿蒙系统在智能汽车领域有哪些案例?A:伴随着自动驾驶能力的成熟,智能座舱 域将与自动驾驶域实现联动,以调用、集成 ADAS 的能力,从而扩大其使用场景的范围,并在 此基础上联动手机、家电、可穿戴设备等多种智能终端,驱动车机生态从“手机-汽车”移动 互联向“汽车-AIoT”万物互联转变。Q:鸿蒙系统的原生智能功能是如何实现的?A:有别于传统的 AI 能力开放,在鸿蒙原生智能架构下,AI 能力与鸿蒙各子系统深度融合,将图像智能,通话智能,文档智能,跨应用协同等能力向应用开放,通过 AI 控件、API 的方式为开发者提供体验好、接入快、功能丰富的 AI 开放能力,让 HarmonyOS 的开发者可以快速友好地构筑鸿蒙原生智能应用。Q:个人开发者在鸿蒙生态合作中能获得哪些发展机会?A:更多的工作机会。可以参加鸿蒙开发者大赛、耀星计划、HDD等活动,助力开发者实现业务发展。Q:HarmonyOS 在性能调优方面有哪些功能?A:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-profiler-introduction-V5Q:有哪些渠道可以向技术支持反馈开发过程中的问题?A:https://developer.huawei.com/consumer/cn/support/feedback/#/Q:有哪些渠道可以向技术支持反馈开发过程中的问题?A:https://developer.huawei.com/consumer/cn/support/feedback/#/Q:HarmonyOS鸿蒙5.0将会有哪些功能 ?A:https://developer.huawei.com/consumer/cn/doc/?ha_source=sem&ha_sourceId=89000605Q:DevEco Studio是否有接入云服务?对AR/VR应用的支持程度如何?A:https://developer.huawei.com/consumer/cn/deveco-studio/想要了解更多鸿蒙应用开发相关知识,欢迎观看DTSE Tech Talk 系列技术直播
-
鸿蒙版cordova/PhoneGap介绍鸿蒙版cordova或PhoneGap,这里统称为鸿蒙版Cordova,遵守cordova官方,不再使用鸿蒙版PhoneGap了。 cordova移动端跨平台研发的重要框架之一,支持Android和Ios,官方并不支持鸿蒙系统,harmony-cordova是鸿蒙的cordova,这里主要介绍鸿蒙版corddova,安卓和Ios请查看cordova官方文档,cordova除了cordova sdk外,还有很多的插件,开发者根据自己的APP的需要可以选择使用相关的插件,鸿蒙版cordova sdk地址鸿蒙版cordova已经上架鸿蒙三方库中心,开发者可以直接在DevEco studio中直接使用。cordova sdk 三方库地址:https://ohpm.openharmony.cn/#/cn/detail/harmony-cordova鸿蒙版cordova支持的插件插件ID接口地址说明cordova-plugin-whitelistcid:link_12白名单cordova-plugin-network-informationcid:link_0网络管理cordova-plugin-inappbrowsercid:link_8内置浏览器cordova-sqlite-storagecid:link_11嵌入式数据库cordova-plugin-cameracid:link_14相机功能cordova-plugin-filecid:link_15本地文件管理cordova-plugin-file-transfercid:link_5上传和下载文件cordova-plugin-dialogscid:link_13弹窗cordova-plugin-datepickercid:link_1日期选择phonegap-plugin-barcodescannercid:link_3扫码cordova-plugin-media-capturecid:link_6视频录制cordova-plugin-alipay-v2调用接口:cid:link_9依赖插件:https://ohpm.openharmony.cn/#/cn/detail/@cashier_alipay%2Fcashiersdk自定义支付宝支付插件,只是按照文档接口调用了支付宝插件依赖支付宝官方插件aliyun.uploadvod暂无文档,需联系开发者阿里云OSS插件,实现移动端直接上传文件到阿里云OSScordova-plugin-android-permissionscid:link_2授权插件,接口永远返回为拥有权限,主要为兼容android移植到harmony使用的,避免修改Android端的代码,harmong授权已下放到各个插件,无需单独编写代码phonegap-bluetooth-plugincid:link_10经典蓝牙插件cordova-plugin-ble-centralcid:link_10低功耗蓝牙插件cordova-base64-to-gallerycid:link_7保存图片到相册cordova-plugin-huawei-pushcid:link_4华为推送,自定义插件,详细使用请咨询开发者Android移植鸿蒙步骤1,打开DevEco创建项目,选择Empty Ability进入下一步,填写必要信息,这里要注意,bundle name 先填写com.example.myapplication,也就是保持默认不变,因为在没有cordova.crt证书的情况下,cordova鸿蒙版要求bundle name必须为com.example.myapplication,主要用于研发测试,如果开发测试完成要修改bundle name上架鸿蒙应用市场,请联系开发者申请cordova.ert证书,或者事先联系开发者提供技术服务。2,项目创建成功后,复制原有Android studio的工程assests/www目录下面的所有文件到鸿蒙工程entry/src/main/resources/目录下,注意直接复制原andriod工程www目录下的文件,不包含www。3,复制原android工程res/xml目录下的config.xml文件到鸿蒙工程entry/src/main/resources/目录下。4,打开DevEco studio的Terminal终端,进入工程目录,执行 ohpm install harmony-cordova 安装本插件。5,打开鸿蒙工程文件entry/src/main/etx/pages/Index.ets文件,修改代码如下:import { MainPage, pageBackPress, pageHideEvent, pageShowEvent } from 'harmony-cordova/Index'; @Entry @Component struct Index { onPageShow(){ pageShowEvent(); //页面显示通知cordova } onBackPress() { pageBackPress(); //拦截返回键由cordova处理 return true; } onPageHide() { pageHideEvent(); //页面隐藏通知cordova } build() { RelativeContainer() { MainPage(); //webview首页index.html } .height('100%') .width('100%') } }6,打开鸿蒙工程文件/entry/src/main/ets/entryAbility/EntryAbility.ets文件,修改onCreate函数如下import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; import { webview } from '@kit.ArkWeb'; import { setSchemeHandler } from 'harmony-cordova/Index';...onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {webview.WebviewController.initializeWebEngine();//webview引擎初始化setSchemeHandler();//设置webview schemehilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');}7,鸿蒙混合研发,也许您会增加其他page页面,不一定应用的首页为cordova webview(index.html)的首页,例如应用增加了鸿蒙的原生的启动页面,包含首页弹窗,同意隐私政策后,然后再从启动页面进入cordova的页面,这样避免在用户没有同意隐私政策的情况下,初始化cordova sdk,因为初始化cordova sdk,系统读取了设备的网络状态,因为国内相关法律规定,在用户没有同意隐私政策的情况下,不允许读取设备的网络标识。8,做以上代码修改后,鸿蒙的移植已经完毕,可以使用模拟器或者真机进行编译和测试了。Ios移植鸿蒙步骤如果您的项目有android和Ios的工程,请参考android项目移植项目的鸿蒙下,如果您的项目没有andriod工程,只有Ios工程,请使用如下方法移植,移植时大部分内容和安卓一样,只是复制的文件的路径不一致,以下只介绍不同部分,相同部分请参考android移植步骤。1,复制Xcode的Ios工程目录下的Staging/www目录下的所有文件到鸿蒙工程entry/src/main/resources/目录下。 2,Xcode工程的config.xml文件在Staging目录下,Xcode工程的该文件不能直接被鸿蒙版cordova使用,需要进行转换,该文件主要记录的是插件的名称和初始化的类,因为鸿蒙版是根据android的config.xml进行插件初始化的,因此需要将Xcode工程config.xml转为安卓的config.xml,请将Xcode工程使用node加入安卓平台,系统会自动生成android版的config.xml。然后将文件复制到鸿蒙版工程的entry/src/main/resources/下。附加说明:本人认为使用cordoca跨平台研发,一般至少都会包含android和ios两大平台,很少只有ios平台,没有android平台的,所以大部分移植鸿蒙参考android移植步骤,后续升级SDK会兼容Ios工程的config.xml,无需转换就可以使用。新项目,一次开发适用于andriod、Ios和Harmony三大平台由于cordova官方当前并不支持HarmonyOS平台,使用node无法直接将HarmonyOS加入到cordova,也无法直接安装插件到HarmonyOS,因此对于新项目要一次开发满足三大平台的话,建议先通过node加入Android和Ios平台和安装插件,后续研发可以使用Android studio研发和调试,待研发成功后,然后再在Xcode和DevEco做跨平台适配。Xcode适配请参考cordova的官方文档,HarmonyOS适配请参考以上Android的移植步骤。特别说明当前版本不支持使用者自定义插件研发,如果该版本没有包含您要使用的插件,或者您的项目中有Android或Ios的自定义插件,需要移植到HarmonyOS平台,请您和本开发者联系,获取技术支持。使用鸿蒙版cordova sdk在开发测试阶段务必将bundle name修改为com.example.myapplication,如果将bunlde name改为正式的Id,鸿蒙版cordova sdk会读取entry/src/main/resources/目录的cordova.crt证书文件,用于验签,如果该文件不存在,启动应用后,应用会闪退。如果应用的bundle name为com.example.myapplication,鸿蒙版 cordova sdk会跳过验签,不检测cordova.crt文件。但是上架鸿蒙应用市场,必须将bundle name改为正式的id,所以请联系开发者申请cordova.ert证书,另外由于操作系统之间的差异,虽然保持了cordova的插件接口不变,但是返回值会有所调整,后续文档会逐步完善,在使用本插件跨平台研发时请联系开发者提供技术服务。
-
在鸿蒙ArkTs中,页面的生命周期是指页面从创建到销毁所经历的一系列状态和事件。这些生命周期事件为开发者提供了在特定时刻执行代码的机会,从而能够更好地管理页面的行为和资源。以下是对鸿蒙ArkTs中页面生命周期的详细介绍:页面生命周期接口鸿蒙ArkTs中的页面生命周期主要由被@Entry装饰的组件来调用,这些组件作为页面的入口,拥有特定的生命周期函数。以下是页面生命周期的主要接口:onPageShow:触发时机:页面每次显示时触发一次,包括路由过程、应用进入前台等场景。作用:这是进行页面数据加载、动画启动等操作的理想时机。onPageHide:触发时机:页面每次隐藏时触发一次,包括路由过程、应用进入后台等场景。作用:此时页面仍然保留在内存中,但不再对用户可见。开发者可以在此函数中暂停一些不必要的后台操作,以节省系统资源。onBackPress:触发时机:当用户点击返回按钮或执行其他返回操作时触发。作用:开发者可以在此函数中执行一些清理工作,如保存用户输入、确认用户是否真的要离开页面等。生命周期调用时机示例以下是一个简单的示例,展示了如何在鸿蒙ArkTs页面中使用这些生命周期函数:@Entry @Component struct MyComponent { @State showChild: boolean = true; // 页面每次显示时触发一次 onPageShow() { console.info('Index onPageShow, 页面每次显示时触发一次'); } // 页面每次隐藏时触发一次 onPageHide() { console.info('Index onPageHide, 页面每次隐藏时触发一次'); } // 当用户点击返回按钮时触发 onBackPress() { console.info('Index onBackPress, 当用户点击返回按钮时触发'); } // 组件即将出现时回调该接口 aboutToAppear() { console.info('MyComponent aboutToAppear'); } // 在组件销毁之前执行 aboutToDisappear() { console.info('MyComponent aboutToDisappear'); } build() { Column() { // this.showChild为true, 创建Child子组件, 执行Child aboutToAppear if (this.showChild) { Child() } // this.showChild为false, 删除Child子组件, 执行Child aboutToDisappear Button('delete Child').onClick(() => { this.showChild = false; }) // push到Page2页面, 执行onPageHide Button('push to next page').onClick(() => { router.pushUrl({ url: 'pages/Page2' }); }) } } }在上面的示例中,MyComponent是一个被@Entry装饰的页面组件,它拥有页面生命周期函数onPageShow、onPageHide和onBackPress。同时,它还拥有组件生命周期函数aboutToAppear和aboutToDisappear,但这两个函数在页面组件中通常不是必需的,因为它们更多地用于自定义组件。注意事项只有被@Entry装饰的组件才可以调用页面的生命周期函数。开发者应根据页面的具体需求,在合适的生命周期函数中执行相应的操作,以优化应用性能和用户体验。综上所述,鸿蒙ArkTs中的页面生命周期为开发者提供了在特定时刻执行代码的机会,有助于更好地管理页面的行为和资源。通过合理利用这些生命周期函数,可以打造更加高效、流畅且用户友好的鸿蒙应用。
-
鸿蒙ArkTs项目中的AppScope/app.json5文件是一个配置文件,用于定义应用程序的基本信息和属性。这个文件是鸿蒙应用开发框架(ArkTS)中不可或缺的一部分,它帮助开发者在构建和打包应用时提供必要的元数据信息。鸿蒙中 AppScope 的目录结构如下图AppScope/app.json5 文件的内容如下{ "app": { "bundleName": "com.harmony.utils", "vendor": "example", "versionCode": 1000003, "versionName": "1.0.3", "icon": "$media:app_icon", "label": "$string:app_name" } }下面是对AppScope/app.json5文件中各个字段的详细解释:bundleName: "com.harmony.utils"这是应用程序的唯一标识符(包名),用于在系统中区分不同的应用。通常,这个名称会遵循反向域名格式,以确保全局唯一性。vendor: "example"表示应用的供应商或开发者名称。这个信息主要用于管理和识别应用的来源。versionCode: 1000003这是一个整数,表示应用的版本号,用于区分应用的不同版本。每次发布新版本时,这个值应该增加,以确保系统能够正确识别并更新应用。versionName: "1.0.3"这是一个字符串,表示应用的版本名称,通常用于向用户展示。它可以是任何易于理解的格式,比如“1.0.3”、“2.1 Beta”等。icon: "$media:app_icon"指定应用的图标。这里使用了$media:前缀,表示图标资源位于应用的媒体资源目录下,并且app_icon是资源文件的名称(不包含文件扩展名)。label: "$string:app_name"指定应用的标签或名称,这个名称会显示在设备的应用列表中。这里使用了$string:前缀,表示这个名称是一个字符串资源,app_name是在应用的字符串资源文件中定义的资源名称。app.json5文件采用JSON5格式,这是一种JSON的超集,允许一些JavaScript语法特性,如尾随逗号、注释等,这使得配置文件更加易读和易维护。AppScope/app.json5文件是鸿蒙ArkTs项目中非常重要的配置文件,它包含了应用的基本信息,如包名、版本、图标和名称等,这些信息对于应用的构建、打包和分发都是必不可少的。
-
鸿蒙ArkTS项目结构主要遵循HarmonyOS应用开发的典型组织方式,旨在提高代码的可维护性和项目的可扩展性。鸿蒙ArkTs项目结构(>表示是文件夹,-表示是文件)> .hvigor > .idea > AppScope > entry > hvigor > oh_modules - .gitignore - build-profile.json5 - code-linter.json5 - hvigorfile.ts - local.properties - oh-package.json5 - oh-package-lock.json5以下是鸿蒙ArkTS项目结构的详细解释:文件夹解释.hvigor这个文件夹通常包含与HVigor(可能是一个构建系统或特定工具链的引用,但并非广泛认可的HarmonyOS标准术语)相关的配置文件或缓存。它可能用于存储编译过程的中间文件或日志,具体取决于项目配置。.idea这是一个由IntelliJ IDEA(或其派生IDE如DevEco Studio)创建的文件夹,用于存储项目的IDE特定设置,如代码风格、工作区设置、编译选项等。这有助于团队成员在统一的开发环境中工作。AppScope这个文件夹可能是项目中的一个特定作用域或模块,用于组织与应用逻辑紧密相关的代码或资源。具体内容将取决于项目的需求和设计。entry入口文件夹,通常包含应用的入口文件,如主Ability(Ability是HarmonyOS应用的基本构成单元,用于表示应用的一个页面或功能)的定义。这是用户与应用交互的起点。hvigor与第一个.hvigor文件夹相似,这个hvigor文件夹的存在可能是项目特定配置的一部分,用于存储与构建、测试或部署相关的额外文件。然而,由于它不以点(.)开头,它更可能是项目源代码的一部分,而非IDE自动生成或使用的隐藏文件夹。oh_modules远程模块文件夹,HarmonyOS允许应用通过模块化的方式组织和复用代码。oh_modules文件夹可能包含从远程仓库下载的模块或库,这些模块或库在编译时被引入到应用中。文件解释.gitignoreGit忽略文件,用于指定哪些文件或文件夹不应该被Git跟踪(即不需要提交到版本控制系统中)。这有助于避免将编译产物、临时文件或敏感信息(如密码和密钥)提交到代码仓库。build-profile.json5编译配置文件,使用JSON5格式(JSON的超集,允许一些语法上的宽松),定义了编译过程中的配置选项,如优化级别、包含的库、插件等。code-linter.json5代码检查配置文件,定义了代码风格和格式检查的规则。这些规则帮助维护代码的一致性和质量。hvigorfile.ts可能是项目特定的配置文件,用于指定项目的编译、构建或运行时的特定选项。尽管不是HarmonyOS标准文件,但根据项目命名约定,它可能与构建过程或配置有关。local.properties本地属性文件,用于存储项目本地环境的特定配置,如SDK路径、数据库连接信息等。这些信息通常不会提交到版本控制系统中,因为它们可能因开发者的环境而异。oh-package.json5HarmonyOS应用的包配置文件,类似于Web开发中的package.json,定义了应用的元数据、依赖项、脚本等。这是HarmonyOS应用开发和部署的核心文件之一。oh-package-lock.json5依赖锁文件,记录了项目依赖项的精确版本,以确保在不同环境中构建和部署应用时的一致性。它类似于Node.js的package-lock.json文件。鸿蒙ArkTS项目结构通过合理的文件夹和文件组织,提高了代码的可读性、可维护性和可扩展性。每个部分都承担着不同的角色,共同支持应用的开发和部署。
-
HarmonyOS NEXT Developer Beta5作为鸿蒙系统的一个开发者预览版本,主要面向开发者提供了一系列的功能和更新。以下是对其支持的功能、不支持的功能以及与真机测试区别的详细分析:支持的功能性能和稳定性增强:在Beta3的基础上,进一步增强了开放能力的性能和稳定性,确保开发者在使用过程中能够获得更加稳定和高效的系统体验。对部分开放能力的缺陷进行了修复,提高了系统的整体可靠性和用户体验。新增和增强特性:引入了少量新增特性,如支持媒体库创建资源、文件选择能力等,为开发者提供更多灵活性和便利性。针对元服务,新增了Core File Kit(文件基础服务)的支持,如选择音频文件相关接口AudioViewPicker,以及媒体文件管理服务(Media Library Kit)的新增支持“使用安全控件创建媒体资源”的方式。开发工具和文档更新:IDE(如DevEco Studio)更新到了相应的Beta5版本,提供了更丰富的开发功能和更稳定的开发环境。文档也更新到了Beta5版本,为开发者提供了更详细的开发指导和参考。安全和隐私保护:引入了涉诈剧本检测功能,金融支付类应用在用户转账、支付前,可以通过调用Device Security Kit检测用户是否受到欺诈威胁,并根据检测结果对用户进行有效提示或拦截。不支持的功能部分旧特性的移除:如RichText组件在元服务中的使用被移除,开发者需要使用其他方式(如AtomicServiceWeb/Web/ArkUI原生替代)来实现类似的功能。特定硬件功能的直接模拟:虽然鸿蒙模拟器提供了器件仿真功能,但可能无法完全模拟所有硬件设备的特定功能,特别是那些需要特定硬件支持的功能。实时硬件交互:鸿蒙模拟器主要是一个软件工具,它无法提供与真实硬件设备实时交互的能力。对于需要实时硬件交互的应用测试,可能需要使用真实设备或远程模拟器。目前的鸿蒙next模拟器上应用少的可怜,只有设置、图库、文件管理这3个应用而已与真机测试的区别环境差异:鸿蒙模拟器是在计算机上运行的软件环境,而真机测试则是在真实的鸿蒙系统设备上进行的。因此,模拟器可能无法完全模拟真实设备的所有硬件和软件特性。性能表现:由于模拟器是在计算机上运行的,其性能表现可能受到计算机硬件配置的影响。而真机测试则能够更准确地反映应用在实际设备上的性能表现。测试范围:模拟器通常用于初步的功能测试和界面测试,帮助开发者快速发现和修复问题。而真机测试则更侧重于验证应用在实际使用场景下的稳定性和兼容性。用户体验:模拟器无法提供与真实设备相同的用户体验,如触摸反馈、传感器数据等。因此,在开发过程中,开发者需要结合真机测试来确保应用的实际使用效果。综上所述,HarmonyOS NEXT Developer Beta5为开发者提供了丰富的功能和更新,但也有一些不支持的功能和与真机测试的区别。开发者在开发过程中应充分利用模拟器的优势进行初步测试,并结合真机测试来确保应用的质量和稳定性。
上滑加载中
推荐直播
-
TinyEngine低代码引擎系列.第1讲——低代码浪潮之下,带你走进TinyEngine
2024/11/11 周一 16:00-18:00
李老师 高级前端开发工程师
低代码浪潮之下,带你走进TinyEngine。李旭宏老师将从低代码的发展趋势、TinyEngine的项目介绍,三方物料组件的使用、跨技术栈的使用、源码生成能力的差异性对比等多个方面带大家对TinyEngine低代码引擎有一个更清晰的认知和了解。
即将直播 -
0代码智能构建AI Agent——华为云AI原生应用引擎的架构与实践
2024/11/13 周三 16:30-18:00
苏秦 华为云aPaaS DTSE技术布道师
大模型及生成式AI对应用和软件产业带来了哪些影响?从企业场景及应用开发视角,面向AI原生应用需要什么样的工具及平台能力?企业要如何选好、用好、管好大模型,使能AI原生应用快速创新?本期直播,华为云aPaaS DTSE技术布道师苏秦将基于华为云自身实践出发,深入浅出地介绍华为云AI原生应用引擎,通过分钟级智能生成Agent应用的方式帮助企业完成从传统应用到智能应用的竞争力转型,使能千行万业智能应用创新。
去报名
热门标签