首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【HarmonyOS Next之旅】DevEco Studio使用指南(二十三)

【HarmonyOS Next之旅】DevEco Studio使用指南(二十三)

作者头像
枫叶丹
发布2025-05-19 08:19:41
发布2025-05-19 08:19:41
28000
代码可运行
举报
文章被收录于专栏:C++C++
运行总次数:0
代码可运行

1 -> 引用共享包

引用三方HAR,包括从仓库进行安装、从本地文件夹和本地压缩包中进行安装三种方式。

  • 引用ohpm仓中的HAR,首先需要设置三方HAR的仓库信息,DevEco Studio默认仓库地址为OpenHarmony三方库中心仓,如果您想设置自定义仓库,请在DevEco Studio的Terminal窗口执行如下命令进行设置(执行命令前,请确保已将ohpm配置到环境变量中,第一次配置环境变量后,需重启DevEco Studio):
代码语言:javascript
代码运行次数:0
运行
复制
ohpm config set registry your_registry1,your_registry2

说明:ohpm支持多个仓库地址,采用英文逗号分隔。

然后通过如下两种方式设置三方包依赖信息:

  • 方式一:在Terminal窗口中,切换到需要引入三方包的模块,如entry模块,执行如下命令安装三方包,DevEco Studio会自动在该模块的oh-package.json5中自动添加三方包依赖。
代码语言:javascript
代码运行次数:0
运行
复制
cd path/to/your/project/entry
ohpm install @ohos/lottie
  • 方式二:在需要引入三方包的模块的oh-package.json5中设置三方包依赖,配置示例如下:
代码语言:javascript
代码运行次数:0
运行
复制
"dependencies": {
  "@ohos/lottie": "^2.0.0"
}

依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会安装到该模块的oh_modules目录下。

代码语言:javascript
代码运行次数:0
运行
复制
ohpm install

引用本地模块源码(该本地模块必须与宿主模块归属于同一个工程),如entry模块需要依赖foo模块的源码,有如下两种方式:

  • 方式一:在Terminal窗口中,切换到需要引入本地模块源码的模块,即entry模块下,执行如下命令进行安装,并会在该模块下的oh-package.json5中自动添加依赖。
代码语言:javascript
代码运行次数:0
运行
复制
cd path/to/your/project/entry
ohpm install path/to/foo
  • 方式二:在需要引入本地模块源码的模块的oh-package.json5中设置源码依赖项,即entry模块的oh-package.json5中,添加如下配置:
代码语言:javascript
代码运行次数:0
运行
复制
"dependencies": {
  "foo": "file:path/to/foo"  // 此处也可以是以当前oh-package.json5所在目录为起点的相对路径
}

依赖设置完成后,需要执行ohpm install命令安装依赖包,模块foo的源码会安装在entry模块的oh_modules目录下。

代码语言:javascript
代码运行次数:0
运行
复制
ohpm install

引用本地HAR/HSP包,有如下两种方式:

  • 方式一:在Terminal窗口中,切换到需要引入本地HAR/HSP包的模块,如entry模块,执行如下命令进行安装,并会在oh-package.json5中自动添加依赖。以HAR/HSP包在工程根目录下为例,配置示例如下:

引用HAR:

代码语言:javascript
代码运行次数:0
运行
复制
cd path/to/your/project/entry
ohpm install path/to/package.har

引用HSP(*.tgz包通过HSP模块在release模式下编译生成):

代码语言:javascript
代码运行次数:0
运行
复制
cd path/to/your/project/entry
ohpm install path/to/package.tgz
  • 方式二:在需要引入三方包的模块的oh-package.json5中设置本地HAR/HSP包。以HAR/HSP包在工程根目录下为例,配置示例如下:

引用HAR:

代码语言:javascript
代码运行次数:0
运行
复制
"dependencies": {
  "package": "file:path/to/package.har" // 此处也可以是以当前oh-package.json5所在目录为起点的相对路径。 
}                                       

说明

代码片段中package.har为三方包文件名;"package"为引用该三方包所使用的依赖名称,建议与三方包包名,即三方包的oh-package.json5文件中的name字段保持一致。

引用HSP:

代码语言:javascript
代码运行次数:0
运行
复制
"dependencies": {
  "package": "file:path/to/package.tgz" // 此处也可以是以当前oh-package.json5所在目录为起点的相对路径
}

依赖设置完成后,需要执行ohpm install命令安装依赖包,依赖包会安装在该模块的oh_modules目录下。

代码语言:javascript
代码运行次数:0
运行
复制
ohpm install

另外,在安装或卸载共享包时,可在模块或工程的oh-package.json5文件中增加钩子设置,以管理install、uninstall命令的生命周期,配置示例如下:

代码语言:javascript
代码运行次数:0
运行
复制
 "hooks": {
    "preInstall": "echo 00 preInstall", // install命令执行之前
    "postInstall": "echo 00 postInstall", // install命令执行之后
    "preUninstall": "echo 00 preUninstall", // uninstall命令执行之前
    "postUninstall": "echo 00 postUninstall"  // uninstall命令执行之后
  }

说明

  • 目前只支持执行当前模块或工程的oh-package.json5文件中hooks,不支持执行依赖中hooks。
  • 在引用共享包时,请注意当前只支持在模块和工程下的oh-package.json5文件中声明dependencies依赖,才会被当做依赖使用,并在编译构建过程中进行相应的处理。

2 -> .tgz格式共享包转换为.har格式

使用DevEco Studio 3.1 Release之前创建出的、使用npm包管理器的Hvigor工程,构建出的共享包为.tgz格式的HAR包。要将已有的.tgz格式的HAR包转换成使用ohpm包管理器的.har格式的HAR包,需要根据以下的流程手动进行转换:

1. 将已有的.tgz格式的HAR包,使用可以解压.tgz格式的打包压缩工具进行解压。例如,在Windows 10/11或macOS上,可以使用操作系统自带的命令行工具tar:

代码语言:javascript
代码运行次数:0
运行
复制
tar -xvf <tar package path> -C <extract path>

解压出来的文件会在解压路径的package文件夹中。

2. 将package文件夹中的package.json文件,修改为oh-package.json5文件。

3. 使用步骤1的打包压缩工具,将package文件夹打包压缩为.har格式:

代码语言:javascript
代码运行次数:0
运行
复制
tar -cvzf <tar package path> package

转换后.har格式的HAR包可以使用ohpm包管理器进行安装与发布。

3 -> 生成应用图标

DevEco Studio支持Image Asset功能,帮助开发者生成适应不同设备、不同屏幕密度的图标,并展示图标在目录中的具体位置。

说明

当前Image Asset功能支持为Phone、Tablet、2in1应用生成单层图标。

Image Asset支持生成以下两种类型图标:

  • icon:应用图标(手机或其他设备桌面及设置>应用中出现的应用图标)。
  • start window icon:启动页图标。

1. 在工程中选中模块或文件,右键单击New > Image Asset,进入图标配置页面。

说明

若在模块级目录(Entry或其他模块)下新建Image Asset,将创建Icon and start window icon类型图标,用于在module.json5文件中配置icon及startWindowIcon字段;在工程级目录(AppScope或其他目录)下新建Image Asset,将创建Icon类型图标,生成的图标可配置在app.json5文件的icon字段中。

2. 需要根据向导配置图标样式、大小等基本信息。

  • Device:选择当前配置的图标生效的设备类型。
  • Icon Type:展示当前图标的类型。
  • Name:配置图标名称。命名支持使用字母、数字、下划线,长度最多128个字符;不支持中文命名;
  • Foreground Layer:分层图标资源前景层。可配置下列字段信息:
    • Path:选择前景Image存放路径。推荐使用的图标尺寸为1024px*1024px,保证图标整体的清晰性。
    • Trim:选择Yes,将调整图标图形与边框之间的距离,同时会去除图片周围多余的透明空间。
    • Resize:拖动滑块,设置图形的缩放比例。
  • Background Layer:分层图标资源背景层。请配置下列字段信息:
    • Asset Type:设置图标背景类型。可以选择颜色(Color)或图像(Image)
    • Color:点击色块区域,选择适当的背景色。
    • Path:选择背景Image路径。推荐使用的图标尺寸为1024px*1024px,保证图标整体的清晰性。
    • Trim:选择Yes,将调整图标图形与边框之间的距离,同时会去除图片周围多余的透明空间。
    • Resize:拖动滑块,设置图形的缩放比例。

3. 点击Next,确认图标的存储路径和相应的尺寸信息,图标将默认存放在resources 目录下。点击Finish完成图标生成。不同尺寸对照关系如下:

  • sdpi:表示小规模的屏幕密度(Small-scale Dots Per Inch),适用于dpi取值为(0, 120]的设备。
  • mdpi:表示中规模的屏幕密度(Medium-scale Dots Per Inch),适用于dpi取值为(120, 160]的设备。
  • ldpi:表示大规模的屏幕密度(Large-scale Dots Per Inch),适用于dpi取值为(160, 240]的设备。
  • xldpi:表示特大规模的屏幕密度(Extra Large-scale Dots Per Inch),适用于dpi取值为(240, 320]的设备。
  • xxldpi:表示超大规模的屏幕密度(Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(320, 480]的设备。
  • xxxldpi:表示超特大规模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),适用于dpi取值为(480, 640]的设备。

4. 如需配置桌面或设置页面出现的应用图标,可将module.json5文件中icon字段修改为新生成的图标名称;如需修改启动页的icon图标,可将module.json5文件中startWindowIcon字段修改为新生成的图标名称。

说明

  • 当上述字段配置了新生成的图标名称后,系统会根据当前设备状态优先从相匹配的限定词目录,即步骤3生成的不同尺寸的图标文件中寻找资源。
  • 若module.json5文件中未配置icon字段,系统将使用app.json5中icon字段配置的图标。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 -> 引用共享包
  • 2 -> .tgz格式共享包转换为.har格式
  • 3 -> 生成应用图标
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档