- 博客(66)
- 收藏
- 关注

原创 HarmonyOS4.0系统性深入开发01应用模型的构成要素
应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模型进行应用开发,使应用开发更简单、高效。HarmonyOS应用模型的构成要素包括:应用组件应用组件是应用的基本组成单位,是应用的运行入口。用户启动、使用和退出应用过程中,应用组件会在不同的状态间切换,这些状态称为应用组件的生命周期。应用组件提供生命周期的回调函数,开发者通过应用组件的生命周期回调感知应用的。
2023-12-22 10:10:19
1632

原创 HarmonyOS4.0从零开始的开发教程01运行Hello World
在HarmonyOS应用开发学习之前,需要进行一些准备工作,首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。进入,单击“立即下载”进入下载页面。DevEco Studio提供了Windows版本和Mac版本选择,可以根据操作系统选择对应的版本进行下载。这里以Windows为例进行安装。
2023-11-30 08:29:02
1734
原创 HarmonyOS4.0系统性深入开发38Web组件概述
Web组件用于在应用程序中显示Web页面内容,为开发者提供页面加载、页面交互、页面调试等能力。页面加载:Web组件提供基础的前端页面加载的能力,包括加载网络页面、本地页面、Html格式文本数据。页面交互:Web组件提供丰富的页面交互的方式,包括:设置前端页面深色模式,新窗口中加载页面,位置权限管理,Cookie管理,应用侧使用前端页面JavaScript等能力。页面调试:Web组件支持使用Devtools工具调试前端页面。下面通过常见使用场景举例,来具体介绍Web组件功能特性。
2024-02-27 09:05:00
1337
原创 HarmonyOS4.0系统性深入开发37 改善布局性能
Flex为采用弹性布局的容器。容器内部的所有子元素,会自动参与弹性布局。子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸。在单行布局场景下,容器里子组件的主轴尺寸长度总和可能存在不等于容器主轴尺寸长度的情况。例如,三个子组件的宽均为200px,容器宽为500px,当第一个子组件和第二个子组件布局完成后,为了显示第三个子组件,需要给第二个子组件和第三个子组件设置压缩属性,此时第二个子组件会被再布局一次,导致布局效率下降。
2024-02-26 09:05:09
1149
原创 HarmonyOS4.0系统性深入开发36 媒体查询(mediaquery)
作为响应式设计的核心,在移动设备上应用十分广泛。媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。
2024-02-22 11:44:38
1213
原创 HarmonyOS4.0系统性深入开发35 弹性布局(Flex)
弹性布局()提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸,在交叉轴方向的尺寸称为交叉轴尺寸。弹性布局在开发场景中用例特别多,比如页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等等。主轴为水平方向的Flex容器示意图。
2024-02-20 17:11:52
947
原创 HarmonyOS4.0系统性深入开发34栅格布局(GridRow/GridCol)
栅格布局是一种通用的辅助定位工具,对移动设备的界面设计有较好的借鉴作用。为栅格容器组件,需与栅格子组件在栅格布局场景中联合使用。
2024-02-19 20:25:37
1877
原创 HarmonyOS4.0系统性深入开发33相对布局(RelativeContainer)
为采用相对布局的容器,支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。下图是一个RelativeContainer的概念图,图中的虚线表示位置的依赖关系。相对布局示意图子元素并不完全是上图中的依赖关系。比如,Item4可以以Item2为依赖锚点,也可以以RelativeContainer父容器为依赖锚点。
2024-02-01 09:00:46
1772
原创 HarmonyOS4.0系统性深入开发32 创建轮播(Swiper)
组件提供滑动轮播显示的能力。Swiper本身是一个容器组件,当设置了多个子组件后,可以对这些子组件进行轮播显示。通常,在一些应用首页显示推荐的内容时,需要用到轮播显示的能力。
2024-01-31 17:07:29
873
原创 HarmonyOS4.0系统性深入开发30布局概述
组件按照布局的要求依次排列,构成应用的页面。在声明式UI中,所有的页面都是由自定义组件构成,开发者可以根据自己的需求,选择合适的布局进行页面开发。布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。
2024-01-29 19:25:36
973
原创 HarmonyOS4.0系统性深入开发29层叠布局
层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过容器组件实现位置的固定定位与层叠,容器中的子元素(子组件)依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。如图1,Stack作为容器,容器内的子元素(子组件)的顺序为Item1->Item2->Item3。层叠布局。
2024-01-28 21:52:06
843
原创 HarmonyOS4.0系统性深入开发28线性布局
线性布局(LinearLayout)是开发中最常用的布局,通过线性容器和构建。线性布局是其他布局的基础,其子元素在线性方向上(水平方向和垂直方向)依次排列。线性布局的排列方向由所选容器组件决定,Column容器内子元素按照垂直方向排列,Row容器内子元素按照水平方向排列。根据不同的排列方向,开发者可选择使用Row或Column容器创建线性布局。Column容器内子元素排列示意图Row容器内子元素排列示意图。
2024-01-26 23:39:08
1457
原创 HarmonyOS4.0系统性深入开发27布局概述
组件按照布局的要求依次排列,构成应用的页面。在声明式UI中,所有的页面都是由自定义组件构成,开发者可以根据自己的需求,选择合适的布局进行页面开发。布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。
2024-01-25 09:54:55
1515
原创 HarmonyOS4.0系统性深入开发26方舟开发框架(ArkUI)概述
基于ArkTS的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的UI开发框架,提供了构建HarmonyOS应用UI所必需的能力,主要包括:ArkTSArkTS是HarmonyOS优选的主力应用开发语言,围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展。扩展能力包含声明式UI描述、自定义组件、动态扩展UI元素、状态管理和渲染控制。状态管理作为基于ArkTS的声明式开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。
2024-01-24 08:49:07
1800
原创 HarmonyOS4.0系统性深入开发25访问DataAbility
访问DataAbility需导入基础依赖包,以及获取与DataAbility子模块通信的URI字符串。访问DataAbility的示例代码如下:创建工具接口类对象。构建数据库相关的RDB数据。注:关于DataAbilityPredicates的详细内容,请参考。调用insert方法向指定的DataAbility子模块插入数据。调用delete方法删除DataAbility子模块中指定的数据。调用update方法更新指定DataAbility子模块中的数据。
2024-01-23 14:48:14
1610
原创 HarmonyOS4.0系统性深入开发24启动DataAbility
DataAbility的提供方和使用方都通过URI(Uniform Resource Identifier)来标识一个具体的数据,例如数据库中的某个表或磁盘上的某个文件。scheme:协议方案名,固定为"dataability",代表Data Ability所使用的协议类型。authority:设备ID。如果为跨设备场景,则为目标设备的ID;如果为本地设备场景,则不需要填写。path:资源的路径信息,代表特定资源的位置信息。query:查询参数。fragment:可以用于指示要访问的子资源。
2024-01-22 09:34:24
1863
原创 HarmonyOS4.0系统性深入开发23ServiceAbility组件概述
ServiceAbility,即"基于Service模板的Ability",主要用于后台运行任务(如执行音乐播放、文件下载等),不提供用户交互界面。ServiceAbility可由其他应用或PageAbility启动,即使用户切换到其他应用,ServiceAbility仍将在后台继续运行。
2024-01-19 09:23:06
951
原创 HarmonyOS4.0系统性深入开发22创建PageAbility
开发者需要重写app.js/app.ets中的生命周期回调函数,开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会在app.js/app.ets中默认生成onCreate()和onDestroy()方法,其他方法需要开发者自行实现。FA模型中,可以通过featureAbility的getContext接口获取应用上下文,进而使用上下文提供的能力。featureAbility接口说明。
2024-01-18 09:09:51
1797
1
原创 HarmonyOS4.0系统性深入开发21PageAbility组件概述
PageAbility是包含UI界面、提供展示UI能力的应用组件,主要用于与用户交互。开发者通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会自动创建相关模板代码。PageAbility相关能力通过单独的featureAbility实现,生命周期相关回调则通过app.js/app.ets中各个回调函数实现。
2024-01-17 09:17:23
1492
原创 HarmonyOS4.0系统性深入开发19进程模型概述
HarmonyOS通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。公共事件从系统角度可分为:系统公共事件和自定义公共事件。系统公共事件:CES内部定义的公共事件,只有系统应用和系统服务才能发布,例如HAP安装,更新,卸载等公共事件。目前支持的系统公共事件详见系统公共事件列表。自定义公共事件:应用自定义一些公共事件用来实现跨进程的事件通信能力。公共事件按发送方式可分为:无序公共事件、有序公共事件和粘性公共事件。
2024-01-15 08:46:44
1309
原创 HarmonyOS4.0系统性深入开发18公共事件简介
公共事件服务提供了动态订阅和静态订阅两种订阅方式。动态订阅与静态订阅最大的区别在于,动态订阅是应用运行时行为,而静态订阅是后台服务无需处于运行状态。动态订阅:指订阅方在运行时调用公共事件订阅的API实现对公共事件的订阅,详见动态订阅公共事件。静态订阅:订阅方通过配置文件声明和实现继承自StaticSubscriberExtensionAbility的类实现对公共事件的订阅,详见静态订阅公共事件。
2024-01-11 16:40:00
1738
原创 HarmonyOS4.0系统性深入开发17进程模型概述
HarmonyOS通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。公共事件从系统角度可分为:系统公共事件和自定义公共事件。系统公共事件:CES内部定义的公共事件,只有系统应用和系统服务才能发布,例如HAP安装,更新,卸载等公共事件。目前支持的系统公共事件详见系统公共事件列表。自定义公共事件:应用自定义一些公共事件用来实现跨进程的事件通信能力。公共事件按发送方式可分为:无序公共事件、有序公共事件和粘性公共事件。
2024-01-10 09:10:26
909
原创 HarmonyOS4.0系统性深入开发16进程模型概述
HarmonyOS通过CES(Common Event Service,公共事件服务)为应用程序提供订阅、发布、退订公共事件的能力。公共事件从系统角度可分为:系统公共事件和自定义公共事件。系统公共事件:CES内部定义的公共事件,只有系统应用和系统服务才能发布,例如HAP安装,更新,卸载等公共事件。目前支持的系统公共事件详见系统公共事件列表。自定义公共事件:应用自定义一些公共事件用来实现跨进程的事件通信能力。公共事件按发送方式可分为:无序公共事件、有序公共事件和粘性公共事件。
2024-01-08 08:51:18
1557
原创 HarmonyOS4.0系统性深入开发15Want概述
是对象间信息传递的载体,可以用于应用组件间的信息传递。其使用场景之一是作为startAbility()的参数,包含了指定的启动目标以及启动时需携带的相关数据,如bundleName和abilityName字段分别指明目标Ability所在应用的包名以及对应包内的Ability名称。当UIAbilityA启动UIAbilityB并需要传入一些数据给UIAbilityB时,Want可以作为一个载体将数据传给UIAbilityB。Want用法示意。
2024-01-05 14:35:00
1582
原创 HarmonyOS4.0系统性深入开发14AbilityStage组件容器
Context是应用中对象的上下文,其提供了应用的一些基础信息,例如resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用开发路径)、area(文件分区)等,以及应用的一些基本方法,例如createBundleContext()、getApplicationContext()等。UIAbility组件和各种ExtensionAbility派生类组件都有各自不同的Context类。
2024-01-04 16:20:45
1089
原创 HarmonyOS4.0系统性深入开发13根据卡片状态刷新不同内容
相同的卡片可以添加到桌面上实现不同的功能,比如添加两张桌面的卡片,一张显示杭州的天气,一张显示北京的天气,设置每天早上7点触发定时刷新,卡片需要感知当前的配置是杭州还是北京,然后将对应城市的天气信息刷新到卡片上,以下示例介绍了如何根据卡片的状态动态选择需要刷新的内容。卡片配置文件:配置每天早上7点触发定时刷新卡片页面:卡片具备不同的状态选择,在不同的状态下需要刷新不同的内容,因此在状态发生变化时通过postCardAction通知EntryFormAbility。
2024-01-03 17:20:47
1757
原创 HarmonyOS4.0系统性深入开发12 卡片数据交互说明
ArkTS卡片框架提供了updateForm()接口和requestForm()接口主动触发卡片的页面刷新。下面介绍卡片页面刷新的典型场景。
2024-01-02 15:25:58
1083
原创 HarmonyOS4.0系统性深入开发11通过message事件刷新卡片内容
在卡片页面中可以通过接口触发message事件拉起FormExtensionAbility,然后由FormExtensionAbility刷新卡片内容,下面是这种刷新方式的简单示例。在卡片页面通过注册Button的onClick点击事件回调,并在回调中调用接口触发message事件拉起FormExtensionAbility。${this`)Text(`${this在FormExtensionAbility的onFormEvent生命周期中调用updateForm接口刷新卡片。${${
2024-01-01 12:11:48
1722
原创 HarmonyOS4.0系统性深入开发10卡片事件能力说明
ArkTS卡片中提供了postCardAction()接口用于卡片内部和提供方应用间的交互,当前支持router、message和call三种类型的事件,仅在卡片中可以调用。接口定义:postCardAction(component: Object, action: Object): void。
2023-12-31 23:47:40
1426
原创 HarmonyOS4.0系统性深入开发09卡片使用动效能力
ArkTS卡片开放了自定义绘制的能力,在卡片上可以通过Canvas组件创建一块画布,然后通过对象在画布上进行自定义图形的绘制,如下示例代码实现了在画布的中心绘制了一个笑脸。@Entry@Component// 初始化CanvasRenderingContext2D和RenderingContextSettingsbuild() {Column() {Row() {// 在onReady回调中获取画布的实际宽和高// 绘制画布的背景// 在画布的中心绘制一个红色的圆。
2023-12-30 21:15:13
985
原创 HarmonyOS4.0系统性深入开发08服务卡片架构
服务卡片(以下简称“卡片”)是一种界面展示形式,可以将应用的重要信息或操作前置到卡片,以达到服务直达、减少体验层级的目的。卡片常用于嵌入到其他应用(当前卡片使用方只支持系统应用,如桌面)中作为其界面显示的一部分,并支持拉起页面、发送消息等基础的交互功能。
2023-12-29 16:00:31
2355
原创 HarmonyOS4.0系统性深入开发07创建一个ArkTS卡片
在已有的应用工程中,创建ArkTS卡片,具体操作方式如下。创建卡片。根据实际业务场景,选择一个卡片模板。在选择卡片的开发语言类型(Language)时,选择ArkTS选项,然后单击“Finish”,即可完成ArkTS卡片创建。ArkTS卡片创建完成后,工程中会新增如下卡片相关文件:卡片生命周期管理文件(EntryFormAbility.ts)、卡片页面文件(WidgetCard.ets)和卡片配置文件(form_config.json)。
2023-12-28 09:00:31
1660
原创 HarmonyOS4.0系统性深入开发06Stage模型开发概述
下图展示了Stage模型中的基本概念。Stage模型概念图和ExtensionAbility组件Stage模型提供UIAbility和ExtensionAbility两种类型的组件,这两种组件都有具体的类承载,支持面向对象的开发方式。每个UIAbility类实例都会与一个WindowStage类实例绑定,该类提供了应用进程内窗口管理器的作用。它包含一个主窗口。也就是说UIAbility通过WindowStage持有了一个窗口,该窗口为ArkUI提供了绘制区域。
2023-12-27 21:49:25
871
原创 HarmonyOS4.0系统性深入开发05ArkTS卡片运行机制
ArkTS卡片实现原理ArkTS卡片渲染服务运行原理与JS卡片相比,ArkTS卡片支持在卡片中运行逻辑代码,为确保ArkTS卡片发生问题后不影响卡片使用方应用的使用,ArkTS卡片新增了卡片渲染服务用于运行卡片页面代码widgets.abc,卡片渲染服务由卡片管理服务管理。卡片使用方的每个卡片组件都对应了卡片渲染服务里的一个渲染实例,同一应用提供方的渲染实例运行在同一个虚拟机运行环境中,不同应用提供方的渲染实例运行在不同的虚拟机运行环境中,通过虚拟机运行环境隔离不同应用提供方卡片之间的资源与状态。
2023-12-26 16:52:19
1361
原创 HarmonyOS4.0系统性深入开发04UIAbility组件详解(下)
UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时,会涉及到启动特定的UIAbility,该UIAbility可以是应用内的其他UIAbility,也可以是其他应用的UIAbility(例如启动三方支付UIAbility)。本章节将从如下场景分别介绍设备内UIAbility间的交互方式。
2023-12-25 16:15:14
1484
原创 HarmonyOS4.0系统性深入开发03UIAbility组件详解(中)
UIAbility组件的基本用法包括:指定UIAbility的启动页面以及获取UIAbility的上下文。
2023-12-24 14:06:05
1598
1
原创 HarmonyOS4.0系统性深入开发02 UIAbility组件详解(上)
当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。图1UIAbility生命周期状态。
2023-12-23 10:59:58
1650
原创 HarmonyOS4.0从零开始的开发教程21HarmonyOS云开发简介
HarmonyOS云开发是DevEco Studio新推出的功能,可以让您在一个项目工程中,使用一种语言完成端侧和云侧功能的开发。基于AppGallery Connect Serverless构建的云侧能力,让您无需构建和管理云端资源,随需使用,大大提高构建应用/元服务的效率。随着我们应用功能越来越丰富,很多应用的运行都依赖云侧的支撑。相比于传统开发模式,云开发模式具备成本低、效率高、门槛低等优势。
2023-12-21 08:57:22
1650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人