HarmonyOS Model(模块管理)

5 阅读1分钟

HarmonyOS Model(模块管理)

开发环境

DevEco Studio 3.1.1 Release

Api 9

Stage模型

一个应用包含一个或者多个Module,可以在DevEco Studio工程中创建一个或者多个Module。Module是HarmonyOS应用/服务的基本功能单元,包含了源代码、资源文件、第三方库及应用/服务配置文件,每一个Module都可以独立进行编译和运行。Module分为“Ability”和“Library”两种类型,“Ability”类型的Module对应于编译后的HAP(Harmony Ability Package);“Library”类型的Module对应于HAR(Harmony Archive),或者HSP(Harmony Shared Package)。

应用程序包结构(Stage模型)

0000000000011111111.20240318151018.36504635001861010526703630746888:50001231000000:2800:F20633E69F6DDC1A8B2C69B386733F1F4360729209BFB4F1765AC759B092C1E5.png

Module与UIAbility组件关系示意图

0000000000011111111.20240318151018.20566272773787421269178543448484:50001231000000:2800:B4DEC63EB3D76D3E4283CA897BAED87F6083C6A30D746F99A135FC62E9A0CF73.png

!--参考官网:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/application-package-structure-stage-0000001478061425-V2--

创建Stage模型的项目

(Create Project -> Application -> (Template Market(选择一个模板)-> Next ) )

image-20240402165249203.png

Model:选择Stage

image-20240402165508004.png

创建项目Module

image-20240402165837228.png

选择Module模板(演示使用“Library”类型的Module对应于HAR(Harmony Archive))

image-20240402171339138.png

image-20240402171456486.png

共享Model(Lib)的代码类

model需要共享的类export

export class Log{
​
  static err(tag: string, ...args: any[]) {
    console.error(tag, args)
  }
}

model根目录index.ets加入需要共享的代码类

export { Log } from './src/main/ets/utils/Log'

image-20240402172538915.png

引入依赖Model(lib)

需要引入依赖的Model里面oh-package.json5dependencies加入引用model

一定要Run 'ohpm Install' 之后点击Sync Now

image-20240402172903370.png

之后就可以愉快的玩耍了,直接使用lib里面公开的类

import UIAbility from '@ohos.app.ability.UIAbility';
import hilog from '@ohos.hilog';
import window from '@ohos.window';
import {Log} from "custom"    //Thisexport default class EntryAbility extends UIAbility {
  onCreate(want, launchParam) {
    Log.err('testTag', '%{public}s', 'Ability onCreate')   //This
  }
  ...
}
​

总结:

创建Library Model,export需要共享的类,model根目录index.ets加入需要共享的代码类,需要引入依赖的Model里面oh-package.json5的dependencies加入引用model,一定要Run 'ohpm Install' 之后点击Sync Now,import {your class } from "your model name"