您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
   
DeepSeek大模型应用开发实践
6月12-13日 厦门
基于 UML 和EA进行分析设计
6月23-24日 北京+线上
人工智能、机器学习 TensorFlow+Keras
6月30日-7月1日 直播
   
 
 订阅
鸿蒙APP架构及开发入门

 
 
  52  次浏览      3 次
 2025-6-9
 
编辑推荐:
本文主要介绍了鸿蒙APP架构及开发入门等相关内容。 希望对您的学习有所帮助。
本文来自于CSDN,由火龙果软件Linda编辑、推荐。

1.鸿蒙系统

1.1 什么是鸿蒙

鸿蒙是一款面向万物互联时代的、全新的分布式操作系统。

在传统的单设备系统能力基础上,鸿蒙提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR眼镜等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。

1.2 鸿蒙特点

1.2.1 硬件互助,资源共享

实现不同终端设备之间的快速连接、能力互助、资源共享。依赖的关键技术包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度等。

分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互通提供了统一的分布式通信能力,为设备之间的无感发现和零等待传输创造了条件。

应用场景:

智能家居场景:在烹饪时,手机可以通过碰一碰和烤箱连接,并将自动按照菜谱设置烹调参数,控制烤箱来制作菜肴。设备之间即连即用,无需繁琐的配置。

视频通话场景:在做家务时接听视频电话,可以将手机与智慧屏连接,并将智慧屏的屏幕、摄像头与音箱虚拟化为本地资源,替代手机自身的屏幕、摄像头、听筒与扬声器,实现一边做家务、一边通过智慧屏和音箱来视频通话。

协同办公场景:将手机上的文档投屏到智慧屏,在智慧屏上对文档执行翻页、缩放、涂鸦等操作,文档的最新状态可以在手机上同步显示。

1.2.2 一次开发,多端部署

鸿蒙提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。

1.2.3 统一OS,弹性部署

支持多种终端设备按需弹性部署,能够适配不同类别的硬件资源和功能需求。

2. 鸿蒙应用程序

2.1 应用程序的不同形态

2.2 app文件的结构

app是应用分发的基本单元,其内部包含hap、hsp。

hap:应用安装和运行的基本单元

entry:应用的主模块,作为应用的入口,提供了应用的基础功能。

feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装【弹性部署】。

hsp:是动态共享包,可以包含代码、C++库、资源和配置文件,通过HSP可以实现应用内的代码和资源的共享。

一个应用程序(app)包含:一个entry包,0-N个feature包,0-N个hsp包。

鸿蒙app与安卓app对比:

2.3 工程结构

2.3.1 代码结构

AppScope > app.json5:应用的全局配置信息。

entry:HarmonyOS工程模块,编译构建生成一个HAP包。

src > main > ets:用于存放ArkTS源码。

src > main > ets > entryability:应用的入口。

src > main > ets > pages:应用包含的页面。

src > main > resources:用于存放应用所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件。

src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明。

build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。

hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。

obfuscation-rules.txt:混淆规则文件。混淆开启后,在使用Release模式进行编译时,会对代码进行编译、混淆及压缩处理,保护代码资产。

oh_modules:用于存放三方库依赖信息。

build-profile.json5:应用级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。

hvigorfile.ts:应用级编译构建任务脚本。

2.3.2 鸿蒙、安卓工程代码结构对比

模块类型及编译产物

在模块的module.json5文件中定义了模块的类型

  1. {
  2.    "module": {
  3.       "name": "device_har",
  4.       "type": "har", //取值 hap:entry、feature;hsp;har;
  5.        "deviceTypes": [
  6.           "default",
  7.           "tablet",
  8.           "2in1"
  9.           ]
  10.       }
  11. }

2.3.3.1 模块产物类型

hap(Harmony Ability Package)是应用安装和运行的基本单元。编译后生成.hap文件。

hap包是由代码、资源、第三方库、配置文件等打包生成的模块包,其主要分为两种类型:entry和feature。

entry:应用的主模块,作为应用的入口,提供了应用的基础功能。

feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装。

hsp(Harmony Shared Package)是动态共享包。编译后生成.hsp文件。

包含代码、C++库、资源和配置文件,通过HSP可以实现应用内的代码和资源的共享。HSP不支持独立发布,而是跟随其宿主应用的APP包一起发布,与宿主应用同进程,具有相同的包名和生命周期。

har(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。

在应用内HAR将打包到HAP、HSP中,不会单独存在。

2.3.3.2 模块产物的引用关系

2.4 APP启动过程

AbilityStage:是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。

UIAbility:是一种包含UI的应用组件,主要用于和用户交互。一个HAP中可以包含多个UIAbility,但一个UIAbility对应一个任务栈。

Page:代表一个页面。一个UIAbility中包含多个页面。

普通应用结构

只有一个Entry类型的hap,hap内只会有一个AbilityStage,普通应用只有一个任务栈,所以只会有一个UIAbility。

启动过程

声明module的AbilityStage,入口UIAbility,启动时自动创建相应的类

UIAbility中当WindowStage创建完成后加载第一个Page

声明页面地址,页面跳转router

main_pages.json声明页面路径,通过系统提供的router组件打开对应的页面。

2.5 Page页面布局

2.5.1 声明式UI

装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中@Entry、@Component和@State都是装饰器,

@Entry表示该自定义组件为入口组件

@Component表示自定义组件,

@State表示组件中的状态变量,状态变量变化会触发UI刷新。

UI描述:以声明式的方式来描述UI的结构,例如build()方法中的代码块。

自定义组件:可复用的UI单元,可组合其他组件,如上述被@Component装饰的struct Hello。

系统组件:ArkUI框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的Column、Text、Divider、Button。

属性方法:组件可以通过链式调用配置多项属性,如fontSize()、width()、height()、backgroundColor()等。

事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的onClick()。

系统组件、属性方法、事件方法具体使用可参考基于ArkTS的声明式开发范式。

2.5.2 常见的页面布局

2.5.3 线性布局

Column 列

List 布局

 

   
52 次浏览       3
 
相关文章

CMM之后对CMMI的思考
对软件研发项目管理的深入探讨
软件过程改进
软件过程改进的实现
 
相关文档

软件过程改进框架
软件过程改进的CMM-TSP-PSP模型
过程塑造(小型软件团队过程改进)
软件过程改进:经验和教训
 
相关课程

以"我"为中心的过程改进(iProcess )
iProcess过程改进实践
CMMI体系与实践
基于CMMI标准的软件质量保证

最新活动计划
DeepSeek大模型应用开发 6-12[厦门]
人工智能.机器学习TensorFlow 6-30[直播]
基于 UML 和EA进行分析设计 6-23[北京]
嵌入式软件架构-高级实践 7-9[北京]
用户体验、易用性测试与评估 7-25[西安]
图数据库与知识图谱 8-23[北京]
 
 
最新文章
iPerson的过程观:要 过程 or 结果
基于模型的需求管理方法与工具
敏捷产品管理之 Story
敏捷开发需求管理(产品backlog)
Kanban看板管理实践精要
最新课程
基于iProcess的敏捷过程
软件开发过程中的项目管理
持续集成与敏捷开发
敏捷过程实践
敏捷测试-简单而可行
更多...   
成功案例
英特尔 SCRUM-敏捷开发实战
某著名汽车 敏捷开发过程与管理实践
北京 敏捷开发过程与项目管理
东方证券 基于看板的敏捷方法实践
亚信 工作量估算
更多...