鸿蒙学习路线图-认识鸿蒙是什么

288 阅读5分钟

学习网址

developer.huawei.com/consumer/cn…

两类学习模块(应用开发,设备开发)

image.png

1. DevEco Studio开发工具

下载版本

image.png

系统要求

image.png

2. 应用开发指南

开发准备

2.1 方舟开发框架(ArkUI框架)

两种开发范式

开发范式名称语言生态UI更新方式适用场景适用人群
声明式开发范式ArkTS语言数据驱动更新复杂度较大、团队合作度较高的程序移动系统应用开发人员、系统应用开发人员
类Web开发范式JS语言数据驱动更新界面较为简单的程序应用和卡片Web前端开发人员

2.2 两种应用模型

FA(Feature Ability)模型:  HarmonyOS API 7开始支持的模型,已经不再主推。FA模型开发可见FA模型开发概述

Stage模型:  HarmonyOS API 9开始新增的模型,是目前主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。Stage模型开发可见Stage模型开发概述

2.3 Stage模型 详细介绍

  • 利用DevEco 创建工程选择
  • 工程目录

    image.png

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

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

      • src > main > ets:用于存放ArkTS源码。
      • src > main > ets > entryability:应用/服务的入口。 EntryAbility.ts windowStage.loadContent('pages/Login', (err, data) => {
      • src > main > ets > pages:应用/服务包含的页面。
      • src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问
      • src > main > module.json5:Stage模型模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件
      • build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。其中targets中可配置当前运行环境,默认为HarmonyOS。
      • hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
    • oh_modules:用于存放三方库依赖信息。关于原npm工程适配ohpm操作,请参考历史工程迁移

    • build-profile.json5:应用级配置信息,包括签名、产品配置等。

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

  • 应用配置文件

app.json5主要包含以下内容:

  • 应用的全局配置信息,包含应用的包名、开发厂商、版本号等基本信息。
  • 特定设备类型的配置信息。

module.json5主要包含以下内容:

  • Module的基本配置信息,例如Module名称、类型、描述、支持的设备类型等基本信息。
  • 应用组件信息,包含UIAbility组件和ExtensionAbility组件的描述信息。
  • 应用运行过程中所需的权限信息。
  • 应用包

image.png

image.png

  • 调试

使用DevEco Studio进行调试 使用指导可参考应用程序包调试方法,其中包括了单HAP与多HAP通过DevEco Studio工具的安装调试方法。

  • 多HAP使用规则
    • App Pack包不能直接安装到设备上,只是上架应用市场的单元。
    • App Pack包中所有HAP的配置文件中的bundleName标签必须一致。
    • App Pack包中所有HAP的配置文件中的versionCode标签必须一致。
    • App Pack包中同一设备类型的所有HAP中必须有且只有一个entry类型的HAP,feature类型的HAP可以有一个或者多个,也可以没有。
    • App Pack包中的每个HAP必须配置moduleName标签,同一设备类型的所有HAP对应的moduleName标签必须唯一。
    • 同一应用的所有HAP签名证书要保持一致。上架应用市场是以App Pack的形式上架,并对其进行了签名。应用市场分发时会将所有HAP从App Pack中拆分出来,同时对其中的所有HAP进行重签名,这样保证了所有HAP签名证书的一致性。在调试阶段,开发者通过命令行或IDE将HAP安装到设备上时要保证所有HAP签名证书一致,否则会出现安装失败的问题。
  • 共享包
    • HAR与HSP都是为了实现代码和资源的共享,都可以包含代码、C++库、资源和配置文件,最大的不同之处在于:HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝;而HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。
    • HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。
      • HAR不支持在配置文件中声明abilities、extensionAbilities组件。
      • HAR不支持在配置文件中声明pages页面。
      • HAR不支持在build-profile.json5文件的buildOption中配置worker。
      • FA模型与Stage模型的HAR不支持相互引用。
      • Stage模型的HAR,不能引用AppScope内的内容。在编译构建时AppScope中的内容不会打包到HAR中,导致HAR资源引用失败。
  • 资源分类访问
    • 应用开发中使用的各类资源文件,需要放入特定子目录中存储管理。资源目录的示例如下所示,base目录、限定词目录、rawfile目录称为资源目录,element、media、profile称为资源组目录。
    • 对于应用资源,在工程中,通过"$r('app.type.name')"形式引用。其中,app为应用内resources目录中定义的资源;type为资源类型或资源的存放位置,取值包含“color”、“float”、“string”、“plural”、“media”;name为资源命名,由开发者定义资源时确定。
    • 对于rawfile目录资源,通过"$rawfile('filename')"形式引用。其中,filename为rawfile目录下文件的相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。
    • 对于rawfile目录的descriptor,可通过资源管理的getRawFd接口引用,其返回值descriptor.fd为hap包的fd。此时,访问rawfile文件需要结合{fd, offset, length}一起使用。