引言

《论语》:“工欲善其事,必先利其器”。要搞鸿蒙设备开发,必须首先搭建好开发环境。本文首先简要介绍了鸿蒙设备开发环境的两种搭建方案;然后详细介绍了基于Ubuntu 20.04和DevEco Device Tool Release 3.0 搭建鸿蒙设备集成开发环境的完整过程。

一、两种搭建方案

目前,鸿蒙设备的集成开发环境,主要是围绕华为提供的鸿蒙设备集成开发工具 DevEco Device Tool(https://device.harmonyos.com/cn/develop/ide/)进行搭建的,有以下两种搭建方案:

方案一:纯Ubuntu开发环境。(推荐)

参考:

  1. https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-ubuntu-0000001072959308

按照该方案,开发者只需要在装有Ubuntu系统的计算机上围绕 DevEco Device Tool 的Ubuntu版本搭建支持源码编辑、编译、烧录和调试的一站式开发环境即可。装有Ubuntu系统的计算机也可以是虚拟机。

方案二:Windows+Ubuntu混合开发环境。

参考:

  1. https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-windows-ubuntu-0000001194073744
  2. https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-windows-0000001050164976
  3. https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-ide-lite-env-setup-win-ubuntu.md
  4. https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-env-setup.md

该方案主要是为了照顾很多开发者只习惯于在Windows系统中进行开发,但又由于目前除了Hi3861这款处理器以外,大部分处理器尚不支持在Windows下进行鸿蒙系统的编译,所以按照该方案,需要在Windows系统和Ubuntu系统上分别安装 DevEco Device Tool 。

在Ubuntu系统上安装 DevEco Device Tool ,主要是为了搭建鸿蒙系统的编译环境。在开发过程中,开发者使用Windows平台上的 DevEco Device Tool 可视化界面,通过远程连接的方式对Ubuntu系统下的代码进行编辑、编译和烧录等操作。

另外,还有一点要告诉大家:

尽管DevEco Device Tool有Windows和Ubuntu两种版本,但至少到目前为止,其还只能运行在x64架构的CPU上,暂时不要试图将其安装到像树莓派、Nvidia的Jetson Nano这些使用ARM-64bit架构CPU的设备上(笔者已经尝试过了)。

二、搭建纯Ubuntu开发环境

参考:

https://device.harmonyos.com/cn/docs/documentation/guide/ide-install-ubuntu-0000001072959308

在搭建鸿蒙设备开发环境之前,请先按照鸿蒙系统的要求,完成Ubuntu系统的安装:

《在Win10中安装虚拟机:VMware Workstation Pro16+Ubuntu20.04》链接

《在Win10中安装虚拟机:VMware Workstation Player+Ubuntu20.04》链接

无论是写文档还是写程序的注释,都需要用到中文输入法:

《在Ubuntu20.04中安装中文输入法》链接

下面详细介绍按照方案一,基于 Ubuntu20.04 和华为的 DevEco Device Tool Release 3.0 搭建鸿蒙设备开发环境的完整过程:

  1. 基本搭建步骤:2.1~2.5
  2. 如果想在Ubuntu终端窗口中使用HPM(HarmonyOS Package Manager)的命令行(CLI)从华为的DevEco Marketplace网站上下载鸿蒙发行版源码,需要执行步骤2.6~2.7。
  3. 如果想在Ubuntu终端窗口中使用命令行编译鸿蒙工程,需要执行步骤2.8~2.10。
  4. 如果要编译的鸿蒙源码为OpenHarmony_v1.x分支/标签, 需要执行步骤2.11。
  5. 如果你使用的处理器是RISC-V 32bit架构的,需要执行步骤2.12。

2.1 安装后续操作所需的库和工具

sudo apt-get update
sudo apt-get install vim
sudo apt-get install curl

vim是Linux下著名的文本编辑器。

cURL(CommandLine Uniform Resource Locator)是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。通过hpm下载鸿蒙源码时,需要用到curl。

2.2 将Ubuntu的shell改为bash

1、打开终端(CTRL+ALT+t),执行以上命令,查看Ubuntu当前的shell:

ls -l /bin/sh

Ubuntu系统默认的shell为dash。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux

2、如果Ubuntu当前的shell不是bash,执行以下命令,输入密码,选择No,回车,将Ubuntu的shell改为bash。

sudo dpkg-reconfigure dash

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Ubuntu_02

3、执行以下命令,确认上面的更改是否生效。

ls -l /bin/sh

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_03

2.3 安装Python相关

鸿蒙系统的开发环境需要Python的支持。

开发环境要求:Python为3.8~3.9版本。Ubuntu 20.04已默认安装了python 3.8。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux_04

1、安装pip3和venv

sudo apt-get install python3-pip
sudo apt-get install python3.8-venv

2、创建一个名为python的软链接,让该软链接指向python3.8。

cd /usr/bin 
sudo ln -s python3.8 python

3、建议将pip3镜像源设置成国内的镜像源,比如:华为源。

pip3 config set global.trusted-host repo.huaweicloud.com 
pip3 config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple 
pip3 config set global.timeout 120

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_05

2.4 安装Visual Studio Code

Visual Studio Code为鸿蒙开发提供可视化环境,华为的DevEco Device Tool是基于Visual Studio Code的扩展,需要以插件方式安装到Visual Studio Code上面运行。

开发环境要求:Visual Studio Code为1.62及以上版本。

1、下载安装包

下载地址:https://code.visualstudio.com/Download

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙开发 启动java项目_06

在Updates页面,有Visual Studio Code历史上的各个版本,从这个页面中的链接下载,速度更快。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Code_07

下载到的安装包:code_1.68.1-1655263094_amd64.deb

安装包的存放位置:/home/dandelion/HarmonyTools

2、安装

进入存放Visual Studio Code安装包的目录,执行如下命令,安装Visual Studio Code,其中code_1.68.1-1655263094_amd64.deb为软件包名称,请根据实际进行修改。

sudo dpkg -i code_1.68.1-1655263094_amd64.deb

安装结束后,执行code --version,查询Visual Studio Code安装结果。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux_08

2.5 安装DevEco Device Tool 3.0 Release

DevEco Device Tool要求主机的用户名不能包含中文字符,否则在运行DevEco Device Tool时,DevEco 的Home界面可能会一直处于Loading状态,导致不能正常使用。

安装DevEco Device Tool时,请先关闭Visual Studio Code。

虽然在安装DevEco Device Tool的过程中,安装程序会对Python和Visual Studio Code进行检查,如果没有安装或版本不符合要求,安装程序也会自动安装Python和Visual Studio Code,但我还是习惯先按要求提前(2.3、2.4)将它们安装好。

1、下载安装包

版本:V3.0 Release

下载地址:https://device.harmonyos.com/cn/develop/ide

下载到的文件:devicetool-linux-tool-3.0.0.401.zip

存放位置:/home/dandelion/HarmonyTools

2、将下载到的安装包解压,给解压得到的.sh文件赋予可执行权限。

unzip devicetool-linux-tool-3.0.0.401.zip
chmod u+x devicetool-linux-tool-3.0.0.401.sh

3、安装

sudo ./devicetool-linux-tool-3.0.0.401.sh -- --install-plugins

安装DevEco Device Tool的时候,会先自动卸载之前已经安装的DevEco Device Tool。

按上、下键选择,按TAB键跳转,按回车键执行。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux_09

看到下图红框内这条信息时,表明安装成功了。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux_10

4、第一次启动Visual Studio Code。

单击Ubuntu桌面左下角“点阵”图标,选择“All”,找到Visual Studio Code图标。右键单击图标,在弹出的菜单中选择“Add to Favorite”,可将图标添加到桌面左侧;左键点击图标,启动Visual Studio Code。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Code_11

启动Visual Studio Code之后,单击下图中红色箭头所指的左侧工具栏上的图标,可以看到DevEco Device Tool已经作为插件安装到Visual Studio Code中了。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux_12

下图红色箭头所指的的图标就是Visual Studio Code中的DevEco Device Tool插件图标。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Code_13

2.6 安装Node.js

Node.js基于Chrome 浏览器的 V8 JavaScript 引擎,在服务器端为JavaScript程序提供运行环境,它是一个让JavaScript程序运行在浏览器之外的平台。

目前,在Node.js中已经集成了Node.js包管理工具:NPM(Node Package Manager),随Node.js一起安装。后面,我们要用NPM安装鸿蒙的包管理工具hpm,所以这里要先安装Node.js。

1、下载Node.js

版本要求: 需不低于12.x (包含npm 6.14.4),推荐安装LTS版本。

下载地址: https://nodejs.org/zh-cn/download/

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Ubuntu_14

下载到的文件: node-v16.15.1-linux-x64.tar.xz

存放位置: /home/dandelion/HarmonyTools

2、解压

进入存放Node.js软件包的目录(例如: ~/HarmonyTools/),执行以下命令或者在文件上单击右键选择Extract Here,解压已经下载好的安装包, 其中node-v16.15.1-linux-x64.tar.xz为软件包名称,请根据实际名称修改解压命令。

tar -xvf node-v16.15.1-linux-x64.tar.xz

3、配置环境变量

(1)如果没有安装vim,先执行以下命令安装:

sudo apt-get install vim

(2)执行以下命令,编辑当前用户下的配置文件.bashrc。

vim ~/.bashrc

在配置文件中,点击键盘上的“i”,然后在最后插入Node.js的环境变量信息,文件目录和软件包名称请根据实际情况进行修改。

#Node.js 
export NODE_HOME=~/HarmonyTools/node-v16.15.1-linux-x64
export PATH=$NODE_HOME/bin:$PATH

添加完成后,点击键盘上的“Esc”,然后输入:wq,点击“Enter”进行保存并退出。

(3)执行source命令使配置文件立即生效:

source ~/.bashrc

(4)执行以下命令,检查Node.js安装结果:

node -v
npm -v

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙开发 启动java项目_15

2.7 安装HPM

HPM是鸿蒙的包管理工具,安装hpm之前,要先确保Node.js安装成功。同时,要检查网络连接状态,确保可以访问Internet。

1、建议先将npm源配置为国内镜像,例如:华为云镜像源。

npm config set registry https://repo.huaweicloud.com/repository/npm/

2、安装HPM

执行如下命令安装HPM:

npm install -g @ohos/hpm-cli

由于这个命令默认安装hpm的最新版本,而最新版本可能会有Bug,所以可能会出现下图所示错误:

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙开发 启动java项目_16

如果出现错误,解决方法:指定版本号重新安装hpm。有两个版本版本:1.4.2、1.4.4,我都曾成功安装过,例如:

npm install -g @ohos/hpm-cli@1.4.2

这次安装最新版,也没有出错:

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_17

如果提示升级npm,可按照提示执行升级命令:

npm install -g npm@8.12.2

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux_18

如果之后要升级hpm的版本,可执行如下命令:

npm update -g @ohos/hpm-cli

3、执行如下命令(V为大写字母),查看HPM安装结果。

hpm -V
hpm --version

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_19

hpm命令行的使用方法,可参考:https://repo.harmonyos.com/#/cn/help/hpmcli

2.8 安装Python模块

第2.9节要安装的编译构建工具hb(ohos-builder)是用python编写的,它依赖于以下这些Python模块。

1、安装jinja2

pip3 install jinja2

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Code_20

2、安装Scons

python3 -m pip install scons
#或者
sudo apt-get install scons

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙开发 启动java项目_21

执行scons -v,查看是否安装成功:

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_22

3、安装pycryptodome

python3 -m pip install pycryptodome

4、安装ecdsa

python3 -m pip install ecdsa

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Ubuntu_23

5、安装GUI menuconfig工具(Kconfiglib)

python3 -m pip install kconfiglib

6、安装setuptools(Ubuntu20.04默认已经安装)

python3 -m pip install setuptools

2.9 安装hb

1、从PIP库中下载安装

python3 -m pip install --user ohos-build  #安装最新版本

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Ubuntu_24

2、设置环境变量

vim ~/.bashrc

将以下命令拷贝到最后一行,保存并退出。

export PATH=~/.local/bin:$PATH

执行以下命令,让环境变量生效

source ~/.bashrc

3、检查是否安装成功。

执行命令:hb -h,如果出现下图所示,说明没有安装成功。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_Code_25

解决方法1: 先卸载hb(见第4步),然后指定版本安装,例如:

python3 -m pip install --user ohos-build==0.4.3  #安装版本0.4.3

解决方法2: 先卸载hb(见第4步),然后从鸿蒙项目中自带的hb源码安装。

进入鸿蒙项目文件夹,在文件夹空白处单击鼠标右键,选“Open in Terminal”,打开一个终端,在终端中执行命令:

python3 -m pip install --user build/lite

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_linux_26

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_27

执行命令:hb -h,如果出现下图所示,说明安装成功。

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙开发 启动java项目_28

4、卸载hb

python3 -m pip uninstall ohos-build

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_29

2.10 安装gn、ninja

1、先将gn和ninja的压缩包下载到本地

gn下载地址: https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz

ninja下载地址: https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar

下载到的文件:gn-linux-x86-1717.tar.gz、ninja.1.9.0.tar

存放位置:/home/dandelion/HarmonyTools

2、将下载到的压缩包解压到当前文件夹

鸿蒙开发 启动java项目 鸿蒙系统开发环境 搭建_鸿蒙_30

3、设置环境变量

编辑~/.bashrc,将gn和ninja的路径添加到文件中:

export PATH=~/HarmonyTools/gn-linux-x86-1717:$PATH 
export PATH=~/HarmonyTools/ninja.1.9.0/ninja:$PATH

执行以下命令,是环境变量生效:

source ~/.bashrc

2.11 安装LLVM

如果要编译的鸿蒙源码为OpenHarmony_v1.x分支/标签, 请按本节的步骤安装llvm的9.0.0版本。

注意:

如果需要编译其他的OpenHarmony版本,则不需要执行本节的安装步骤,hb会自动下载合适版本的llvm。如果之前按本节的步骤安装过9.0.0版本的llvm,可能会导致编译出错,请先清除(去掉.bashrc文件中相关环境变量设置,最好把之前安装9.0.0版本的llvm时解压出来的llvm文件夹也删掉)。

1、下载LLVM压缩包

下载地址:https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar

下载到的文件:llvm-linux-9.0.0-36191.tar

存放位置:/home/dandelion/HarmonyTools

2、解压LLVM安装包。

tar -xvf llvm-linux-9.0.0-36191.tar

3、设置环境变量。

vim ~/.bashrc

将以下命令拷贝到.bashrc文件的最后一行,保存并退出。

export PATH=~/HarmonyTools/llvm/bin:$PATH

生效环境变量:

source ~/.bashrc

2.12 安装gcc_riscv32

如果你使用的处理器是RISC-V 32bit架构的,需要安装gcc_riscv32编译工具链。

1、先将gcc_riscv32编译工具链的压缩包下载到本地

下载地址: https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

下载到的文件:gcc_riscv32-linux-7.3.0.tar.gz

存放位置:/home/dandelion/HarmonyTools

2、将下载到的压缩包解压到当前文件夹。

3、设置环境变量

编辑~/.bashrc,将gcc_riscv32的路径添加到文件中:

export PATH=~/HarmonyTools/gcc_riscv32-linux-7.3.0/gcc_riscv32/bin:$PATH

执行以下命令,是环境变量生效:

source ~/.bashrc