在OpenHarmony应用开发时,少不了和OpenHarmony SDK打交道。OpenHarmony SDK包含支持的编程语言(即ArkTS、JS、Native)的API和构建工具,界面效果预览器Previewer和toolchains工具链。对于HarmonyOS SDK,在OpenHarmony SDK的基础上,增加了simulator设备模拟器、系统镜像等,后续预计会丰富 hms core 相关的能力,如账户服务、地图服务等。
OpenHarmony SDK是开源的,可以获得代码,因此可以在SDK里根据需要新增、修改一些代码,然后编译出定制的OpenHarmony SDK。也可以获得最新的代码,编译出最新版本的OpenHarmony SDK,如 OpenHarmony SDK API 10 beta版本,来体验新版本。本文就介绍下如何编译OpenHarmony SDK API。如有遗漏,欢迎留言补充。
1、环境准备
可以参考官网文档站点 设备开发文档 来准备开发环境、获取代码。
1.1 安装库和工具集
使用如下apt命令安装后续操作所需的库和工具:
sudo apt update
sudo apt install binutils binutils-dev git git-lfs gnupg
sudo apt install flex bison gperf build-essential zip curl
sudo apt install zlib1g-dev gcc-multilib g++-multilib
sudo apt install gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64
sudo apt install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt install lib32z1-dev ccache libgl1-mesa-dev libxml2-utils
sudo apt install xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip
sudo apt install ruby genext2fs device-tree-compiler make libffi-dev
sudo apt install e2fsprogs pkg-config perl openssl libssl-dev libelf-dev
sudo apt install libdwarf-dev u-boot-tools mtd-utils cpio doxygen
sudo apt install liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools
sudo apt install mtools default-jre default-jdk libncurses5 apt-utils
sudo apt install wget scons python3.8-distutils tar rsync git-core
sudo apt install libxml2-dev lib32z-dev grsync xxd libglib2.0-dev
sudo apt install libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs
sudo apt install squashfs-tools pcmciautils quota ppp libtinfo-dev
sudo apt install libtinfo5 libncurses5-dev libncursesw5 libstdc++6
sudo apt install gcc-arm-none-eabi vim ssh locales libxinerama-dev
sudo apt install libxcursor-dev libxrandr-dev libxi-dev
1.2 将Python 3.8设置为默认Python版本
查看Python 3.8的位置:
which python3
# 或
which python3.8
将Python和Python3切换为Python 3.8:
#{Python 3.8 路径}为上一步查看的Python 3.8的位置
sudo update-alternatives --install /usr/bin/python python {Python 3.8 路径} 1
sudo update-alternatives --install /usr/bin/python3 python3 {Python 3.8 路径} 1
本文使用Ubuntu 22.04.2 LTS,预置的是python3.10,倒也没有什么影响。Python版本3.8,3.10都可以。