Wsh's blog Wsh's blog
首页
  • 基础知识
  • ArkUI
  • UIAbility
  • 组件通信方式
  • 前端缓存
  • React
  • typescript
  • javascript
  • flutter
  • node
  • webpack
web3D😉
宝库📰
  • 分类
  • 标签
  • 归档
龙哥的大🐂之路 (opens new window)
GitHub (opens new window)

wsh

热爱前端的程序媛
首页
  • 基础知识
  • ArkUI
  • UIAbility
  • 组件通信方式
  • 前端缓存
  • React
  • typescript
  • javascript
  • flutter
  • node
  • webpack
web3D😉
宝库📰
  • 分类
  • 标签
  • 归档
龙哥的大🐂之路 (opens new window)
GitHub (opens new window)
  • 基础知识
    • 01-HarmonyOS 认知
    • IDE 介绍
      • DevEco Studio IDE []
    • 应用程序多Hap机制
    • 多HAP 构建视图
    • 多HAP开发调试与发布部署流程
    • 多HAP运行机制及数据通信方式
      • 共享包
    • 应用配置文件
      • Stage 模型: 存在一个app.json.5 + n个module.json5
  • ATKTS
  • UIAbility
  • 组件通信方式
  • harmonyOS
2025-01-06
目录

基础知识

# 01-HarmonyOS 认知

  1. HarmonyOS 是什么
    • 是一套分布式系统,可以用在 1 + N + 8 场景
  2. 特点:
    • 一次开发,多次部署
      • 一套工程代码,多端按需部署
    • 可分可合,自由流转
      • 整体解耦拆分成多个服务,也可以多个服务组合成一个app
      • 多个设备之间可以接续一个应用,或者多个应用共同协同
    • 统一生态,原生智能
      • 鸿蒙系统统一的标准,以及内置了各种AI能力供调用

# IDE 介绍

# DevEco Studio IDE []

下载地址: https://developer.huawei.com/consumer/cn/download

  • AppScope > app.json5:应用的全局配置信息,详见app.json5配置文件。
  • entry:HarmonyOS工程模块,编译构建生成一个HAP包。
    • est: 用于存放ArkTS源码
      • entryability:应用/服务的入口。
      • entrybackupability:应用提供扩展的备份恢复能力。
      • pages:应用/服务包含的页面。
    • resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。
    • module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息。具体的配置文件说明,详见module.json5配置文件。
    • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。
    • hvigorfile.ts:模块级编译构建任务脚本。
    • oh-package.json5:用来描述包名、版本、入口文件(类型声明文件)和依赖项等信息。
  • oh_modules:用于存放三方库依赖信息。
  • build-profile.json5:工程级配置信息,包括签名signingConfigs、产品配置products等。其中products中可配置当前运行环境,默认为HarmonyOS。
  • hvigorfile.ts:工程级编译构建任务脚本。
  • oh-package.json5:主要用来描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。

# 应用程序多Hap机制

  • 模块化管理
  • 组合部署到不同的设备
  • 资源共享,减少包体积

FeatureB.hap: 资源共享,多个hap 使用的资源(公共资源文件,公共页面)放在hap中,其他Hap到该Hap 访问资源和so文件。

# 多HAP 构建视图

# 多HAP开发调试与发布部署流程

# 多HAP运行机制及数据通信方式

  • 同一进程内的数据通信:线程间通信
  • 跨进程数据通信: 进程间通信
  • 多hap 运行在同一进程,通信方式与统一Hap组件通信方式相同

# 共享包

# HAR: 静态共享包

# HSP: 动态共享包: 专门为某一应用开发的HSP,只能被该应用内部其他HAP/HSP 使用,用于应用内部代码、资源共享。应用内HSP跟随其宿主应用的APP包一起发布,与该宿主应用具有相同的包名和生命周期。

# 应用配置文件

# Stage 模型: 存在一个app.json.5 + n个module.json5

  • app.json5: 应用的全局配置信息,包含应用的报名、开发厂商、版本号等基本信息

  • module.json5:module的基本配置信息:module 名称,类型,描述,支持的设备类型等基本信息。应用组件信息,包含UIAbility 组件和ExtensionAbility组件的描述信息,权限信息

  • launchType: 标识当前UIAbility组件的启动模式,可选标签: ‒ multiton:多实例模式 ‒ singleton: 单实例模式(默认) ‒ specified: 指定实例模式,运行时由开发者决定

  • module.json5 模块配置说明

{
  "module": {
    //标识当前Module的名称,标签值采用字符串表示(最大长度31个字节),该名称在整个应用要唯一,仅支持英文字符。
    "name": "entry",
   //标识当前Module的类型。类型有两种,分别:- entry:应用的主模块。feature:应用的动态特性模块。
    "type": "entry",
//标识当前Module的描述信息,标签值是字符串类型(最长255字节)或对描述内容的字符串资源索引。
    "description": "$string:module_desc",
//标识当前Module的入口UIAbility名称或者
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "tv",
      "tablet"
    ],
/标识当前Module是否在用户主动安装的时候安装,表示该Module对应的HAP是否跟随应用一起安装。
    "deliveryWithInstall": true,
//    标识当前Module是否支持免安装特性。
//    - true:表示支持免安装特性,且符合免安装约束。
//
//    - false:表示不支持免安装特性。
//    - 当应用的entry类型Module的该字段配置为true时,该应用的feature类型的该字
    "installationFree": false,
    //标识当前Module的profile资源,用于列举每个页面信息。 其实就是路由,点进去你会发现是你在此module下配置跳转的路由信息
    "pages": "$profile:main_pages",
    "virtualMachine": "ark",
  }
}
ATKTS

ATKTS→

最近更新
01
组件通信方式
01-07
02
UIAbility
01-07
03
ATKTS
01-06
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Wsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式