当前位置: 首页 > 科技观察

【木棉】知识分享——能力介绍

时间:2023-03-16 16:07:04 科技观察

更多内容请访问:鸿蒙科技社区,与华为官方共建https://harmonyos.51cto.com前言开发HarmonyOS,了解HarmonyOS的一些基础理论知识尤为重要。本期知识分享主要为大家介绍了鸿蒙开发的核心要素——能力,并梳理了页面能力、服务能力和数据能力的作用以及三者之间的关系。话不多说,我们赶紧发动汽车吧!文本能力是鸿蒙开发的核心要素。现阶段HarmonyOS支持以能力为单位部署应用,实现应用的相关业务逻辑。因此,作为鸿蒙应用的开发者,我们需要深入理解Ability的概念,探索Ability在实际开发中的应用。Ability的概念比较抽象,它的定义是:应用能力的抽象。通俗地说,Ability是一个应用程序的重要组成部分(一个完整的应用程序通常有很多Abilities),它可以为应用程序实现特定的业务功能。Ability分为FeatureAbility(FA)和ParticleAbility(PA)两大类,每种类型的开发者提供不同的模板来实现不同的功能。接下来,我将着重介绍鸿蒙发展中尤为重要的三个能力——页面能力、服务能力和数据能力。前面我们提到,Ability分为两种——FeatureAbility(FA)和ParticleAbility(PA)。其中,FA支持PageAbility(页面模板是FA唯一支持的开发模板),PageAbility用于提供与用户交互的能力(即相关的UI能力)。目前HarmonyOS提供了JavaUI和JSUI两种UI框架来实现应用与用户的交互,各有千秋。其中,JavaUI提供了细粒度的UI编程接口,使得应用程序开发的过程更加灵活。JSUI(JavaScriptUI)提供了一个相对高级的UI描述。在实现相同业务功能的过程中,与Java语言相比,用JS语言编写的代码要短得多。因此,使用JSUI可以使应用程序开发的过程更简单,劳动强度更低。PA支持服务能力和数据能力。ServiceAbility中的Service模板用于提供后台运行任务的能力,DataAbility中的Data模板用于对外提供数据访问的统一抽象。为了明确页面能力、服务能力和数据能力之间的关系,以及它们在鸿蒙应用开发中的具体作用,首先介绍一下MVC框架的概念。MVC(ModelViewController)框架是软件工程中一个重要的开发理念。作为一种软件框架模式,被当今的软件开发公司广泛采用。在这种框架模式的开发中,一个应用程序会被分解为三个核心功能组件:Model、View和Controller。其中View表示与用户交互的UI界面(对应页面模块),Model表示企业数据和业务规则(对应服务模块),Controller表示用于调用数据接口的控制器(对应数据模块)。这意味着页面、服务和数据三个模块在开发过程中将相互独立、相互独立。因此,企业的技术团队可以专注于自己负责的模块的研究和实践,而不用关心自己任务以外的模块:负责页面模块的技术团队只需要设计用户界面,而负责服务模块的技术团队只需要实现软件的后台即可。对于业务逻辑,负责数据模块的技术团队只需要管理数据接口,提供数据即可。三个模块设计好后,可以将三个模块合理拼接,得到一个完整的应用。显然,使用MVC框架进行应用程序的实际开发,可以大大提高软件项目的开发效率。其实PageAbility、ServiceAbility和DataAbility之间的关系也类似于MVC框架中三个核心组件之间的关系。PageAbility的作用是提供与用户交互的能力。它作用的对象是UI页面。因此PageAbility主要负责页面模块,视觉元素的设计是PageAbility的重头戏;ServiceAbility的作用是提供后台运行任务的能力,它代表了一个应用的核心服务功能,所以ServiceAbility主要负责服务模块;DataAbility的作用是对外提供统一的数据访问抽象,可以调用PageAbility和ServiceAbility的数据访问接口提供相应的数据,因此DataAbility主要负责数据模块。可以看出,鸿蒙应用的内部设计也是符合MVC理念的。值得一提的是,主要负责某个模块的能力并不是不能参与其他模块(比如页面能力也可以参与服务模块和数据模块),但是页面能力、服务能力和数据能力是负责他们对应的模块通常是符合当今主流的方向(即MVC框架模式)。通常,UI页面的布局和视觉元素是由PageAbility实现的。当页面需要调用相关服务功能时,PageAbility会向ServiceAbility发送服务请求,然后应用后台会给出相应的响应。当页面或服务能力需要相关数据时,会向数据能力发送数据请求,数据能力会给出数据结果响应,并为其提供数据访问接口。总之,PageAbility、ServiceAbility和DataAbility都具有特定的功能,它们共同构建了鸿蒙App的工程架构。结语小兰本期知识分享到此结束qwq。更多信息请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com