189 8069 5689

鸿蒙分享开发源,鸿蒙基于开源安卓

2021-01-25鸿蒙开发(五)

Ability

专注于为中小企业提供网站设计制作、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业东港免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

Ability是应用所具备能力的抽象

2.onActive()

Page会在进入INACTIVE状态后来到前台,然后系统调用此回调。Page在此之后进入ACTIVE状态,该状态是应用与用户交互的状态。Page将保持在此状态,除非某类事件发生导致Page失去焦点,比如用户点击返回键或导航到其他Page。当此类事件发生时,会触发Page回到INACTIVE状态,系统将调用onInactive()回调。此后,Page可能重新回到ACTIVE状态,系统将再次调用onActive()回调。因此,开发者通常需要成对实现onActive()和onInactive(),并在onActive()中获取在onInactive()中被释放的资源。

3.onInactive()

当Page失去焦点时,系统将调用此回调,此后Page进入INACTIVE状态。开发者可以在此回调中实现Page失去焦点时应表现的恰当行为。

4.onBackground()

如果Page不再对用户可见,系统将调用此回调通知开发者用户进行相应的资源释放,此后Page进入BACKGROUND状态。开发者应该在此回调中释放Page不可见时无用的资源,或在此回调中执行较为耗时的状态保存操作。

5.onForeground()

处于BACKGROUND状态的Page仍然驻留在内存中,当重新回到前台时(比如用户重新导航到此Page),系统将先调用onForeground()回调通知开发者,而后Page的生命周期状态回到INACTIVE状态。开发者应当在此回调中重新申请在onBackground()中释放的资源,最后Page的生命周期状态进一步回到ACTIVE状态,系统将通过onActive()回调通知开发者用户。

6.onStop()

系统将要销毁Page时,将会触发此回调函数,通知用户进行系统资源的释放。销毁Page的可能原因包括以下几个方面:

用户通过系统管理能力关闭指定Page,例如使用任务管理器关闭Page。

用户行为触发Page的terminateAbility()方法调用,例如使用应用的退出功能。

配置变更导致系统暂时销毁Page并重建。

系统出于资源管理目的,自动触发对处于BACKGROUND状态Page的销毁。

AbilitySlice生命周期

AbilitySlice生命周期回调与Page的相应回调类似,因此不再赘述。由于AbilitySlice承载具体的页面,开发者必须重写AbilitySlice的onStart()回调,并在此方法中通过setUIContent()方法设置页面。

Page与AbilitySlice生命周期关联

当AbilitySlice处于前台且具有焦点时,其生命周期状态随着所属Page的生命周期状态的变化而变化。当一个Page拥有多个AbilitySlice时,例如:MyAbility下有FooAbilitySlice和BarAbilitySlice,当前FooAbilitySlice处于前台并获得焦点,并即将导航到BarAbilitySlice,在此期间的生命周期状态变化顺序为:

对应两个slice的生命周期方法回调顺序为:

FooAbilitySlice.onInactive() -- BarAbilitySlice.onStart() -- BarAbilitySlice.onActive() -- FooAbilitySlice.onBackground()

在整个流程中,MyAbility始终处于ACTIVE状态。但是,当Page被系统销毁时,其所有已实例化的AbilitySlice将联动销毁,而不仅是处于前台的AbilitySlice。

鸿蒙OS以赛促学、课程进校背后 开发者成为生态的“第一批种子”

5月24日,在深圳举办的首届HarmonyOS开发者创新大赛颁奖礼中,一位来自河北承德,年仅9岁的小学生吸引了大家的注意力,他的名字叫戈帅。

实际上,在这场3000多支队伍、超万名以上选手参与的比赛中,戈帅并不在其中。在父亲的陪伴下,他走上舞台分享了认知鸿蒙操作系统的经历及开发故事。

原来,戈帅的父亲才是一名鸿蒙开发者,并在这次大赛中获得了创新 科技 奖。早自2020年起,父亲便通过鸿蒙进行课程学习及相关产品的开发,在此期间,戈帅站在旁边从只是看着,逐步萌生了上手尝试的想法。

平时戈帅的妈妈很忙,多在网上购物,“我想做一个购物网站”,戈帅参考拼多多APP的购物界面,通过HarmonyOS的分布式系统架构,用时半个月时间开发出了一个购物应用。

不同于其他的操作系统,戈帅觉得,鸿蒙的系统基础架构很容易上手,编辑软件和程序也操作简单、便捷。基于开发经历,戈帅虽未参赛,但他也通过考试成为了华为开发者学院中最年轻的学员。

开发门槛降低

在获奖的23支战队中,Labo儿童艺术创想战队基于鸿蒙操作系统的分布式能力,开发出了一款名为“Labo涂鸦鸿蒙亲子版”的应用产品,通过协同绘画等既实现了亲子互动功能,还进一步引导孩子发挥想象力和创造力进行艺术创作。

其实,除了比赛竞逐,让华为消费者业务软件总裁、AI与智慧全场景业务部总裁王成录欣喜的是,有几万名开发者参与到了华为鸿蒙操作系统的学习中,他认为这更利于开发者认知鸿蒙,并理解华为未来的生态构想。

众所周知,无论安卓还是IOS系统,其生态得以建立,在于源源不断的有开发者的应用创新、有用户的体验完善,这对于鸿蒙生态而言,也不例外。

王成录说,“一个生态的构建比做一个单点的技术要宽泛得多”,他强调,华为只有将门槛降得越低,才能吸引更多人进来,如此生态才有希望。

操作系统有目标

回顾HarmonyOS诞生的背景,从2016年5月正式立项做系统开发起,王成录表示,“目标非常清晰,我们绝不会再做一个安卓或一个IOS”。他强调,华为对未来的判断是“不仅仅是智能手机会小型化、智能化,身边的智能化设备也会越来越多”,因此,要做一个“面向未来万物互联的系统,能够解决大大小小所有硬件设备装载系统的问题”。

另外,为突破原有APP信息开发、分发受智能手机这一硬件终端的限制,华为想要让所有智能硬件搭载同一个系统,这些想法让鸿蒙操作系统在设计之初就采用全栈模块化,通过横纵向的解耦,实现了数据既能一体化,又可以有分布式数据库、分布式文件系统和分布式计算等能力。

王成录,当“所有软件配置在一条产线上”时,硬件生产方面的“门槛降低”,无需定制化就可以自动加载相应模块进行生产,“开发者头疼的面向各种不同硬件、不同系统要开发不同应用的困难,迎刃而解。”

在王成录看来,鸿蒙操作系统之于开发者,“相当于有了无数个积木,可以根据场景随意组装所需要的终端”,而这个终端可以“无感知地、方便地给消费者提供各个场景上所需要的服务”。

高校人才计划背后

谈及当下中国制造产业中,无论家电还是办公设备等生产厂商所面临的一个共性问题,“同质化非常严重。”王成录认为,鸿蒙操作系统的特点和愿景,都可以让硬件厂商实现个性化生产,“这对中国所有基础制造业来讲,是一个非常巨大的转型升级的机会。”

谈及鸿蒙操作系统的意义,方正证券 科技 电子首席分析师陈杭认为,要分不同的阶段来看。首先是短期意义,“它决定了华为能否实现硬件业务残缺的软件延续”,而中期来看,“华为能够建立横跨人车、人居跨场景的AIoT生态”;最为深远的意义在于,鸿蒙之于华为,是“能否在异构计算时代取得第四张操作系统入场券的关键”。

意义之大,理想美好,但华为也面临着一个残酷现实——如何突破开发者生态的构建之困。

王成录并不避讳谈及开发者对于鸿蒙生态的重要性,他甚至将所有参与HarmonyOS开发者创新大赛的开发者们,视为华为实现梦想的“第一批种子”,为了持续构建开发者生态,华为也在启动高校的人才培养计划,鼓励高校在校生参与其中。

据王成录介绍,目前全国已有十几所高校把HarmonyOS课程作为了选修课,今后华为还将推动超15款HarmonyOS课程走入高校,在华东、华北、西南等7个片区开展鸿蒙高校创新训练营等活动,吸引大学生等周边开发者加入进来,一起参与鸿蒙生态的构建。

除了在开发者生态构建的过程中,华为对外强调鸿蒙操作系统始终是开源开放的,并在大屏应用后即将宣布在手机终端的落地。

就在5月25日一早,华为公司旗下的HarmonyOS通过官方微博公布了一个鸿蒙手机操作系统的开机画面视频,借此“官宣”6月2日将正式公布可以覆盖手机等移动终端的鸿蒙操作系统。确切的说,不只是鸿蒙生态,那些被开发者创新推出的应用,都将在此后被更多移动终端的用户体验、使用。无疑,HarmonyOS距离万物互联的愿景又近了一步。

「鸿蒙开发 3」华为鸿蒙应用开发的低代码(Super Visual)开发方式

开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(HarmonyOS)简介及开发环境搭建

开发前的准备:「鸿蒙开发 1」华为鸿蒙应用集成开发环境DevEco Studio安装和设置

了解鸿蒙应用开发的基本开发流程:「鸿蒙开发 2」第一个华为鸿蒙(HarmonyOS)应用程序(App)

本章目标:

1 了解华为鸿蒙应用开发的可视化(低代码)方式

2 通过构建一个简单的具有页面跳转功能的应用

低代码开发方式,即通过可视化界面开发方式快速构建布局、编辑UI界面,可有效降低用户的上手成本并提升用户构建UI界面的效率。

1 打开DevEco Studio,创建一个新工程,选择支持Phone / Tablet / Wearable(手机 / 平板 / s可穿戴)的模板,我们在此直接选择Empty Ability

Project name工程名称填SuperVisual

Development mode开发方式选择Super Visual

其它的可以使用默认设置,点击完成,进入编辑界面

1 在Project(项目)窗口,删除工程运行默认的入口文件夹:“entry src main js default pages index”文件夹

2 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”

JS visual name填first,点击完成,进入编辑界面

创建完成后,可以看到“entry src main supervisual default pages page page.visual”的文件目录结构

3 第一个页面内有一个容器、文本和一个按钮,通过Div、Text和Button组件来实现

(1)分别选中first.visual画面中的Text、Div组件,单击鼠标右键,选择Delete删除

(2)选中UI Control中的Div组件,将其拖至画布

点击右侧属性样式栏中的通用样式图标(General),设置Div组件的高度Height为100%,使其占满屏幕

点击右侧属性样式栏中的样式图标(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示

(3)选中UI Control中的Text组件,将其拖至Div组件的中央区域

点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hello World ”

点击右侧属性样式栏中的通用样式图标(General),设置Text组件的宽(width)为100%,高(height)为100px

点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为60px,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示

(4)选中UI Control中的Button组件,将其拖至Text组件下面

点击右侧属性样式栏中的属性图标(Properties),设置Button组件的Value属性为 “ Next ”,

点击右侧属性样式栏中的通用样式图标(General),设置按的宽(width)为40%,高(height)为60px

点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为40px

至此,第一个页面创建完成

我们可以在预览窗口中看效果,点击右侧边栏的Preview打开预览窗口

1 在Project窗口,选择工程中的“entry src main js default pages”,单击鼠标右键,选择“New JS Visual”

Visual配置界面,JS visual name填second,回车(Enter键)或者点击完成,进入编辑界面

2 第二个页面中有一个容器和文本,通过Div、Text组件实现,现在编辑器已经为我们创建好了,我们就来修改下它们的属性(你也可以删除原有的自己创建,具体步骤参考本章第二节“二 创建第一个页面”)。

选中Text组件,点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hi,I'm always here. ”

点击右侧属性样式栏中的通用图标(General),设置组件的宽(width)为100%,高为60px

点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为36px,TextAlign样式为center

这样我们的第二个页面创建成功了

1 在Project窗口,打开工程中的“entry src main js default pages first first.js”, 导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:

2 打开或者切换到first.visual页面,选中画布上的Button组件,点击右侧属性样式栏中的事件图标(Events),鼠标点击Click事件的输入框,选择launch事件

3 在预览窗口中查看项目效果,点击Next按钮后发现我们的页面成功跳转了。

到此,本章的目标就完成了。

华为宣布正式推出鸿蒙OS的手机开发者Beta版,鸿蒙系统有什么亮点?

华为推出的鸿蒙OS系统最大的亮点是分布式架构首次用于终端OS,实现跨终端无缝协同体验,并且华为对这个系统采取是开源的政策,全球开发者都可以共享


分享名称:鸿蒙分享开发源,鸿蒙基于开源安卓
URL分享:http://cdxtjz.com/article/phgpsj.html

其他资讯