OpenHarmony DevEco Studio使用指南-通过命令行构建应用或服务

丶龙八夷
发布于 2023-4-4 14:07
浏览
0收藏

除了使用DevEco Studio一键式构建OpenHarmony应用或原子化服务(简称应用或服务)外,还可以使用命令行工具来调用Hvigor任务进行构建。通过命令行的方式构建应用或服务,可用于构筑CI(Continuous Integration)持续集成流水线,按照计划时间自动化的构建HAP、APP、签名、安装部署等操作,降低开发者负担。

通过命令行方式构建应用或服务,可在Windows、Ubuntu和macOS下调用相应命令来执行,本文将以Ubuntu系统为例进行讲解,包括准备构建环境、构建HAP、构建APP、签名等操作。Windows和macOS系统,仅在搭建构建环境上存在差异,其余调用的命令行任务与Ubuntu系统没有区别。

下表是命令行构建OpenHarmony应用或服务依赖的工具版本配套表信息。

工具

版本要求

JDK

JDK 11

Node.js

v14.19.1及以上,且只支持14系列版本

Hvigor

1.0.6及以上

编译构建插件

1.0.6及以上

ohsdkmgr

1.0.0.100及以上

准备HAP/APP构建环境

安装JDK

  1. 下载JDK,只支持JDK 11版本。
  2. 进入JDK软件包目录,执行如下命令,解压已经下载好的安装包,其中jdk_x64_linux_11.0.13_8.tar.gz为软件包名称,请根据实际进行修改。

tar -xvf jdk_x64_linux_11.0.13_8.tar.gz
  1. 配置JDK环境变量。

     a. 执行如下命令,打开当前用户下的配置文件.bashrc。

vim ~/.bashrc

     b. 在配置文件中,添加JDK的环境变量信息,文件目录和软件包名称请根据实际情况进行修改。

#jdk
export JAVA_HOME=/opt/jdk11.0.13_8
export PATH=$PATH:$JAVA_HOME/bin
  1. 执行source命令使配置文件立即生效。

source ~/.bashrc 
  1. 执行如下命令,检查JDK安装结果。

java -version

OpenHarmony DevEco Studio使用指南-通过命令行构建应用或服务-鸿蒙开发者社区

安装node.js

  1. 访问​​Node.js官方网站​​,下载Node.js,版本为v14.19.1及以上,且只支持14系列版本。
  2. 进入Node.js软件包目录,执行如下命令,解压已经下载好的安装包,其中node-v14.19.1-linux-x64.tar.xz为软件包名称,请根据实际进行修改。

tar -xvf node-v14.19.1-linux-x64.tar.xz
  1. 配置Node.js环境变量。

     a. 执行如下命令,打开当前用户下的配置文件.bashrc。

vim ~/.bashrc

     b. 在配置文件中,添加Node.js的环境变量信息,文件目录和软件包名称请根据实际情况进行修改。

#nodejs
export NODE_HOME=/opt/node-v14.19.1-linux-x64/bin
export PATH=$NODE_HOME:$PATH
  1. 执行source命令使配置文件立即生效。

source ~/.bashrc  
  1. 执行如下命令,查询Node.js版本信息,确认安装成功。

node -v

OpenHarmony DevEco Studio使用指南-通过命令行构建应用或服务-鸿蒙开发者社区

下载OpenHarmony SDK

通过ohsdkmgr命令行工具来统一下载和管理OpenHarmony SDK。

  1. 下载​​OpenHarmony SDK命令行工具​​:ohcommandlinetools-linux-tool-1.0.0.100.zip。
  2. 执行如下命令,解压命令行工具,工具名称请根据实际情况进行修改。

unzip ohcommandlinetools-linux-tool-1.0.0.100.zip
  1. 执行如下命令,打开SDK工具配置文件config.properties,并设置OpenHarmony SDK存储路径,请注意,指定路径时请使用绝对路径。

说明

OpenHarmony SDK存储目录请提前创建好,并为当前用户赋予写权限。

vim oh-command-line-tools/ohsdkmanager/conf/config.properties

OpenHarmony DevEco Studio使用指南-通过命令行构建应用或服务-鸿蒙开发者社区

  1. 进入到oh-command-line-tools/ohsdkmanager/bin下,安装OpenHarmony SDK。例如,同时安装ArkTS和JS API 8的SDK、toolchains。关于ohsdkmgr的详细命令说明,请参考命令行工具使用说明

./ohsdkmgr install ets:8 js:8 toolchains --accept-license

配置环境变量

配置hdc_std命令行工具(API 9工程中该工具名称为hdc)和OpenHarmony SDK以及的环境变量信息。其中:

  • hdc_std命令行工具用于OpenHarmony应用/服务调试所需的工具,该工具存放在SDK的toolchains目录中。为方便使用hdc_std命令行工具,请将其添加到环境变量中。
  • OpenHarmony SDK中包含ArkTS、JS和Native SDK,以及toolchains工具链。
  1. 执行如下命令,打开当前用户下的配置文件.bashrc。

vim ~/.bashrc
  1. 在配置文件中,添加hdc_std工具、OpenHarmony SDK环境变量信息,文件目录和软件包名称请根据实际情况进行修改。

#hdc_std工具环境变量
export PATH=/home/ohos/OpenHarmony/SDK/toolchains:$PATH
#OpenHarmony SDK环境变量
export OHOS_SDK_HOME=/home/ohos/OpenHarmony/SDK
  1. 执行source命令使配置文件立即生效。

source ~/.bashrc

设置OpenHarmony npm仓

OpenHarmony npm三方共享包,需要从指定的npm仓中进行下载,在执行编译构建任务前,请执行如下命令设置OpenHarmony npm共享仓地址。

npm config set @ohos:registry=https://repo.harmonyos.com/npm/

构建应用或服务

通过命令行工具可以构建出HAP或APP,用于应用或服务的测试、验证等。

如下图所示,一般通过CI流水线构建生成不带签名信息的APP,然后通过命令行工具将该APP拆分为HAP并对HAP进行签名(调试签名),最后将签名后的HAP部署到设备上进行测试。

OpenHarmony DevEco Studio使用指南-通过命令行构建应用或服务-鸿蒙开发者社区

当然,您也可以直接构建HAP,然后再使用命令行工具对HAP进行签名后,将签名后的HAP部署到设备上进行测试。

构建APP

使用命令行方式构建APP,构建方式遵循npm规范,可以在package.json中定义npm运行脚本,然后再运行npm脚本的方式来进行构建。

  1. 在工程的package.json的scripts中,定义构建任务脚本。其中任务名称buildOhosApp可以自定义,调用的构建任务hvigor assembleApp保持不变。

"scripts": {
    "buildOhosApp": "hvigor assembleApp"
},
  1. 在工程的根目录节点下,执行npm install命令安装工程的依赖。

npm install
  1. 在工程的根目录节点下,执行如下命令运行上述步骤中定义的构建任务。

npm run buildOhosApp

说明

如果执行构建任务命令提示“node_modules/.bin/hvigor:Permission denied”权限受限,则需要进入到工程的node_modules/.bin/目录下,执行chmod u+x ./hvigor命令,为hvigor工具赋权。

等待任务执行完毕后,可以在工程的build/outputs/default目录下获取构建的APP包。

构建HAP

使用命令行方式构建HAP,其构建方式与构建APP一样,可以在package.json中定义npm运行脚本,然后再运行npm脚本的方式来进行构建。

  1. 在工程的package.json的scripts中,定义构建任务脚本。其中任务名称buildOhosHaps可以自定义,调用的构建任务hvigor assembleHap保持不变。

"scripts": {
    "buildOhosHaps": "hvigor assembleHap"
},
  1. 在工程的根目录节点下,执行npm install命令安装工程的依赖。

npm install
  1. 在工程的根目录节点下,执行如下命令运行上述步骤中定义的构建任务。

npm run buildOhosHaps

说明

如果执行构建任务命令提示“node_modules/.bin/hvigor:Permission denied”权限受限,则需要进入到工程的node_modules/.bin/目录下,执行chmod u+x ./hvigor命令,为hvigor工具赋权。

等待任务执行完毕后,可以在各模块下的build/default/outputs/default目录下获取构建的HAP。

将APP拆分为HAP

将APP(带签名信息和不带签名信息APP均可)拆包为HAP,需要使用APP拆包工具app_unpacking_tool.jar进行拆包,该工具可在下载的OpenHarmony SDK路径下的toolchains\{版本号}\lib目录下获取。

java -jar 'home/ohos/OpenHarmony/SDK/toolchains/3.1.5.5/bin/app_unpacking_tool.jar' --mode app --app-path 'home/ohos/OpenHarmony/APP/openharmony-demo-unsigned.app' --out-path 'home/ohos/OpenHarmony/HAP' --force true --unpackapk false

关于该命令中需要修改的参数说明如下,其余参数不需要修改:

  • jar:指定APP拆包工具的路径。
  • app-path:指定需要拆分的APP包。
  • out-path:指定HAP存储路径,该路径不能与APP包存放路径相同。
  • force:取值为true,表示强制删除输出文件夹以及文件夹中的文件;如果取值为false,则指定的输出目录不能提前创建好,否则会出现错误。

对HAP进行签名

在真机设备上运行HAP,需要使用hap-sign-tool.jar命令行工具对HAP进行签名,该工具可以在OpenHarmony SDK路径下的toolchains\{版本号}\lib目录下获取。

关于如何使用命令行工具对HAP进行签名的指导请参考​​Hap包签名工具指导​​。

在真机设备中安装HAP

通过hdc_std工具(API 9工程中该工具名称为hdc)将HAP推送到真机设备上进行安装。

说明

  • 推送的HAP必须是携带签名信息的,否则会导致HAP安装失败。
  • 若使用hdc出现无法找到设备的情况,请参见​​Linux端USB设备权限说明​​。
  • 推送单个HAP的命令如下:

hdc_std install signed_openharmony-demo.hap
  • 推送多个HAP的命令如下:

hdc_std install xxx01.hap xxx02.hap xxx03.hap




文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/command-line-building-app-hap-0000001231125588-V3​

已于2023-4-4 14:07:26修改
1
收藏
回复
举报
1条回复
按时间正序
/
按时间倒序
安苒anran0
安苒anran0

硬核!

回复
2023-7-22 16:24:43
回复
    相关推荐