HarmonyOS是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。分布式软总线示意图见。
HarmonyOS提供了用户程序框架、Ability框架以及UI框架,支持应用开发过程中多终端的业务逻辑和界面逻辑进行复用,能够实现应用的一次开发、多端部署,提升了跨设备应用的开发效率。一次开发、多端部署示意图见图
HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如图
HUAWEI DevEco Device Tool (以下简称DevEco Device Tool)是HarmonyOS面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS的组件按需定制,支持代码编辑、烧录和调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。
工具控制区:提供工程的导入、配置、烧录、调试等功能。
代码编辑区:提供代码的查看、编写和调试等功能。
输出控制台:提供操作日志的打印、调试命令的输入及命令行工具等功能。
快捷控制功能:提供DevEco Device Tool工具的快捷操作命令,如配置模板选择、工具检查、编译等快捷功能。
如果已安装Visual Studio Code,打开命令行工具,输入code --version命令,检查版本号是否为1.45.1及以上版本;可以正常返回版本号,说明环境变量设置也正确。
登录Visual Studio Code官方网站,下载Visual Studio Code软件包,要求为1.45.1及以上版本。
下载完成后,点击软件包进行安装。安装过程中,请勾选“添加到PATH(重启后生效)”。
安装完成后,重启计算机,使Visual Studio Code的环境变量生效。
如果已安装Node.js,打开命令行工具,输入node -v命令,检查版本号是否为12.0.0及以上版本。如果版本符号要求,请添加NODE_PATH变量。
下载完成后,点击软件包进行安装,勾选图中的选项框,自动安装必要工具(如Python、Visual Studio构建工具链)。
Node.js安装完成后,点击Finish,系统会打开一个新窗口,自动安装必要的工具,请点击键盘任意键继续。
系统自动打开PowerShell工具,开始安装必要工具,会提示安装Python和Visual Studio构建工具链安装成功。
说明
如果安装必要工具链过程中提示Visual Studio的更新失败,可以忽略跳过,不影响使用。
在“此电脑 > 属性 > 高级系统设置 > 高级 > 环境变量 >系统变量”中,新增NODE_PATH变量,值为:C:\Users{userName}\AppData\Roaming\npm\node_modules,其中userName请替换为实际的用户名称。
打开CMD命令行工具,输入“node -v”命令,能正常查询Node.js的版本号,说明Node.js安装成功。
如果已安装JDK,打开命令行工具,输入java -version命令,检查版本号是否1.8版本。
该方式需先确保Node.js安装成功。在安装hpm前,请检查网络连接状态,如果网络不能直接访问Internet,而是需要通过代理服务器才可以访问。这种情况下,需要先设置npm代理,才能安装hpm。
打开命令行工具,执行如下命令安装hpm。
npm install -g @ohos/hpm-cli
安装完成后,执行如下命令(V为大写字母)查看hpm是否安装成功。
hpm -V
如果您已经安装过DevEco Device Tool 插件,在您安装新版本前,请先手动将已安装的DevEco Device Tool 插件卸载后再按照如下步骤进行安装。
登录HarmonysOS设备开发门户,点击右上角注册按钮,注册开发者帐号,注册指导参考注册华为帐号。如果已有华为开发者帐号,请直接点击登录按钮。
进入HUAWEI DevEco Device Tool产品页,下载DevEco Device Tool安装包。
安装成功后,界面如下图所示。
安装C/C++插件
HarmonysOS设备开发采用C/C++语言,Visual Studio Code工具对C/C++语言的支持插件非常丰富,可以安装“C/C++”插件来实现C/C++代码智能提示、代码高亮、格式化等功能,帮助您更高效、便利的开发更规范和优美的代码。
在Visual Studio Code的插件市场,输入“C/C++”,然后点击“Install”。
1、可以在本机和虚拟机之间拖拽文件
2、是虚拟机的屏幕充满VMware Workstations的窗口
这里以Ubuntu 16.04为例,其他的步骤都大致相同
查看shell是否为bash,在终端运行如下命令
ls -l /bin/sh
如果显示为“/bin/sh -> bash”则为正常,否则请按以下方式修改:
方法一:在终端运行如下命令,然后选择 no。
sudo dpkg-reconfigure dash
方法二:先删除sh,再创建软链接。
sudo rm -rf /bin/sh
sudo ln -s /bin/bash /bin/sh
which python3.8
cd /usr/bin && sudo rm python && sudo ln -s /usr/local/bin/python3.8 python && python --version
命令行方式:
sudo apt-get install python3-setuptools python3-pip -y
sudo pip3 install --upgrade pip
安装包方式:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip3 install setuptools
命令行方式:
sudo pip3 install kconfiglib
安装包方式:
下载.whl文件(例如:kconfiglib-13.2.0-py2.py3-none-any.whl)。
下载路径:“https://pypi.org/project/kconfiglib#files”
运行如下命令,安装.whl文件。
sudo pip3 install kconfiglib-13.2.0-py2.py3-none-any.whl
安装升级文件签名依赖的Python组件包,包括:pycryptodome、six、ecdsa。安装ecdsa依赖six,请先安装six,再安装ecdsa。
命令行方式:
sudo pip3 install pycryptodome
安装包方式:
下载.whl文件(例如:pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl)。
下载路径:“https://pypi.org/project/pycryptodome/#files”。
运行如下命令,安装.whl文件。
sudo pip3 install pycryptodome-3.7.3-cp37-cp37m-manylinux1_x86_64.whl
命令行方式:
sudo pip3 install ecdsa
安装包方式:
下载.whl文件(例如:ecdsa-0.14.1-py2.py3-none-any.whl)。
下载路径:“https://pypi.org/project/ecdsa/#files”
运行如下命令,安装.whl文件。
sudo pip3 install ecdsa-0.14.1-py2.py3-none-any.whl
打开Linux编译服务器终端。
运行如下命令,安装SCons安装包。
sudo apt-get install scons -y
如果软件源中无法找到安装包,请按以下步骤处理:
下载源码包(下载路径:“ https://scons.org/pages/download.html ”,推荐SCons版本是3.0.4+)。
解压源码包到任意目录。
安装源码包:进入解压目录,运行如下命令:
sudo python3 setup.py install
运行如下命令,查看是否安装成功。如果安装成功,查询结果下图所示。
scons -v
如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja、gcc_riscv32编译工具。
(推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、gcc_riscv32编译工具。
安装gn、ninja、gcc_riscv32编译工具时,请确保编译工具的环境变量路径唯一。
官网
打开Linux编译服务器终端。
下载gn工具。
解压gn安装包至~/gn路径下。
tar -xvf gn.1523.tar -C ~/
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gn:$PATH
生效环境变量。
source ~/.bashrc
打开Linux编译服务器终端。
下载ninja工具。
解压ninja安装包至~/ninja路径下。
tar -xvf ninja.1.9.0.tar -C ~/
设置环境变量。
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/ninja:$PATH
生效环境变量。
source ~/.bashrc
须知
Hi3861平台仅支持使用libgcc运行时库的静态链接,不建议开发者使用libgcc运行时库的动态链接,会导致商业分发时被GPL V3污染。
打开Linux编译服务器终端。
下载gcc_riscv32工具。
解压gcc_riscv32安装包至~/gcc_riscv32路径下。
`tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~`/
设置环境变量
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gcc_riscv32/bin:$PATH
生效环境变量。
source ~/.bashrc
riscv32-unknown-elf-gcc -v
打开设置环境变量
vim ~/.bashrc
在最下面添加这几行
export PATH=~/gn:$PATH
export PATH=~/ninja:$PATH
export PATH=~/gcc_riscv32/bin:$PATH
保存
source ~/.bashrc
现在可以查看这些环境变量
echo $PATH
可以从鸿蒙官方获取HarmonyOS方法获取HarmonyOS源码。
地址
目前HarmonyOS源码只支持在Linux系统中进行编译,可以将Linux环境下的工程目录映射到Windows环境下,然后使用DevEco Device Tool打开,并在Windows环境下进行烧录和调试。映射方法如下:
在Linux上,设置HarmonyOS源码所在文件夹为共享文件夹。
在Windows上,鼠标右键单击“此电脑”,选择“映射网络驱动器(Z)
选择一个未使用的驱动器,并设置HarmonyOS源码所在的路径,格式为“\Linux IP地址\共享文件夹名称”,如:\10.6.25.83\HarmonyOS,点击“完成”。
HarmonyOS暂不支持Windows系统源码,请从映射的Linux服务器的共享路径,导入源码。
在Visual Studio Code中,点击DevEco Device Tool插件按钮图标,然后点击“Import”按钮。
选择本地映射的HarmonyOS源码文件夹,然后点击“Import”导入工程。
如果想了解更多物联网、智能家居项目知识,可以关注我的项目实战专栏。
或者关注公众号。
编写不易,感谢支持。