鸿蒙-一多开发模式

需要解决:

  1. 不同设备之间的UI(屏幕尺寸、色彩风格)如何适配
  2. 不同设备之间的系统能力如何适配(功能如何兼容)

页面开发适配:

1.自适应布局:

方舟开发框架(ArkUI)提炼了七种自适应布局能力

能力类别

使用场景

实现方式

拉伸能力

容器组件尺寸发生变化时,增加或减小的空间全部分配给容器组件内指定区域

Flex布局的flexGrow和flexShrink属性

均分能力

容器组件尺寸发生变化时,增加或减小的空间均匀分配给容器组件内所有空白区域

Row组件Column组件Flex组件的justifyContent属性设置为FlexAlign.SpaceEvenly

占比能力

子组件的宽或高按照预设的比例,随容器组件发生变化

基于通用属性的两种实现方式:

  • 将子组件的宽高设置为父组件宽高的百分比
  • layoutWeight属性

缩放能力

子组件的宽高按照预设的比例,随容器组件发生变化,且变化过程中子组件的宽高比不变

布局约束的aspectRatio属性

延伸能力

容器组件内的子组件,按照其在列表中的先后顺序,随容器组件尺寸变化显示或隐藏

基于容器组件的两种实现方式:

隐藏能力

容器组件内的子组件,按照其预设的显示优先级,随容器组件尺寸变化显示或隐藏。相同显示优先级的子组件同时显示或隐藏

布局约束的displayPriority属性

折行能力

容器组件尺寸发生变化时,如果布局方向尺寸不足以显示完整内容,自动换行

Flex组件的wrap属性设置为FlexWrap.Wrap

2.响应式布局:

自适应布局可以保证窗口在一定范围内变化时,页面显示是正常的,但是如果窗口尺寸变化比较大的时候,仅依赖自适应布局有可能出现图片异常放大或者页面内容稀疏、留白过多等问题,此时就需要结合响应式布局调整页面结构。

响应式布局能力

简介

断点

将窗口宽度划分为不同的范围(即断点),监听窗口尺寸变化,当断点改变时同步调整页面布局。

媒体查询

媒体查询支持监听窗口宽度、横竖屏、深浅色、设备类型等多种媒体特征,当媒体特征发生改变时同步调整页面布局。

栅格布局

栅格组件将其所在的区域划分为有规律的多列,通过调整不同断点下的栅格组件的参数以及其子组件占据的列数等,实现不同的布局效果。

系统能力适配(了解):

系统能力(即SystemCapability,缩写为SysCap)指操作系统中每一个相对独立的特性,如蓝牙,WIFI,NFC,摄像头等,都是系统能力之一。每个系统能力对应多个API,随着目标设备是否支持该系统能力共同存在或消失。

工程代码结构:三层工程架构:

common(公共能力层):用于存放公共基础能力集合(如工具库、公共配置等)。

common层可编译成一个或多个HAR包或HSP包

(HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝;而HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份),其只可以被products和features依赖,不可以反向依赖。

features(基础特性层):用于存放基础特性集合(如应用中相对独立的各个功能的UI及业务逻辑实现等)。

各个feature高内聚、低耦合、可定制,供产品灵活部署。不需要单独部署的feature通常编译为HAR包或HSP包,供products或其它feature使用,但是不能反向依赖products层。需要单独部署的feature通常编译为Feature类型的HAP包,和products下Entry类型的HAP包进行组合部署。features层可以横向调用及依赖common层。

products(产品定制层):用于针对不同设备形态进行功能和特性集成。

products层各个子目录各自编译为一个Entry类型的HAP包,作为应用主入口。products层不可以横向调用。

  1. common设计为har包,新建module时选择Static Library, 内部存放全局通用的工具函数,公共配置等
  2. feature设计为har包,新建module时选择 Static Library, 内部存放相对独立的业务单元,比如我的分类也就是首页底部Tab切换时的核心业务模块
  3. product为产品层,里面放置phone模块,也就是入口模块,在phone中我们放置入口ability和所有页面级别的组件

Module分为“Ability”和“Library”两种类型:

  • “Ability”类型的Module编译后生成HAP包。
  • “Library”类型的Module编译后生成HAR包HSP包

参考 鸿蒙一次开发,多端部署(一)简介_鸿蒙开发者官网-CSDN博客

  • 34
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HarmonyOS是一种基于微内核架构的分布式操作系统,而设计模式是在软件开发中用来解决特定问题的重要工具。HarmonyOS 2.3引入了一些常见的设计模式,以便开发人员能够更好地利用它们来构建高效、可靠和易于维护的应用程序。 1. 单例模式:HarmonyOS 2.3中的单例模式用于确保某个类的实例在全局范围内只能存在一个。这在多个模块需要共享数据或状态时非常有用。 2. 观察者模式:观察者模式用于在对象之间建立一种订阅-发布的关系。在HarmonyOS 2.3中,这种模式可以用于建立应用程序组件之间的通信和数据传递机制。 3. 适配器模式:适配器模式用于兼容不同接口之间的差异。在HarmonyOS 2.3中,它可以用于确保不同设备和组件之间可以无缝地进行通信。 4. 建造者模式:建造者模式用于创建对象的复杂结构。在HarmonyOS 2.3中,该模式可以用于快速构建复杂的用户界面,同时保持代码的可读性和可维护性。 5. 桥接模式:桥接模式用于将抽象部分与其实现部分解耦。在HarmonyOS 2.3中,这种模式可以用于实现应用程序组件与底层硬件或服务之间的解耦,提高代码的灵活性和可重用性。 通过使用这些设计模式,HarmonyOS 2.3为开发人员提供了更加灵活和高效的开发工具,使他们能够更好地构建出符合用户需求的应用程序。同时,这些设计模式还能够提高代码的可维护性和可扩展性,为长期的应用程序开发提供了更好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值