基于hispark_taurus开发板示例学习OpenHarmony编译(1)

1、轻量级编译构建工具hb

OpenHarmony开源站点提供了一个基于gn和ninja的支持OpenHarmony组件化开发的编译框架。详细信息可以参考该工具的开源站点 https://gitee.com/openharmony/build_lite 。如果想使用最新的编译工具hb,在一些bugfix或者hb工具新特性合入后,需要卸载重新安装。在OpenHarmony代码根目录下执行如下命令,先卸载再安装,并查询确认下版本号:

python3 -m pip uninstall ohos-build
python3 -m pip install --user build/lite
hb --version

build_lite代码仓只提供了工具的简单readme介绍,更加丰富的编译框架知识、构建指导需要访问docs文档仓获取,地址为 https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-build-mini-lite.md 。构建指导文档详细介绍了组件、芯片解决方案、产品解决方案的配置规则,并提供了新建组件、新建芯片解决方案、新建产品解决方案的使用指导。

2、hispark_taurus芯片开发板解决方案-Device

芯片开发板解决方案是指基于某款开发板的完整解决方案,包含驱动、设备侧接口适配、开发板sdk等。芯芯片开发板是一个特殊的组件,源码路径包含SoC和Board两部分,路径规则为:device/soc/{芯片解决方案厂商}/{芯片}和device/board/{开发板厂商}/{开发板}。
hispark_taurus对应的芯片目录在device/soc/hisilicon/hi3516dv300,主要包含芯片的底层处理驱动,为“媒体/图形子系统”提供基础的多媒体处理功能。看起来master最新分支一直在整改,随时会发生变化。当前的文件树如下:

device/soc/hisilicon/hi3516dv300:
                    ├── sdk_linux
                    │   ├── BUILD.gn
                    │   ├── build.sh
                    │   ├── config.gni
                    │   ├── drv
                    │   ├── out
                    │   └── usr
                    ├── sdk_liteos
                    │   ├── BUILD.gn
                    │   ├── hdf_config                       # HDF驱动配置文件
                    │   └── mpp                              # Hi3516DV300芯片的媒体库文件、模块驱动库文件     
                    └── uboot                                # uboot二进制文件
                        └── u-boot-hi3516dv300_emmc.bin

hispark_taurus对应的开发板目录在device/board/hisilicon/hispark_taurus,主要包含对linux内核和liteo_a内核的适配。当前的文件树如下:

device/board/hisilicon/hispar
<think>我们正在处理一个全新的需求:在云服务器上部署鸿蒙系统的打包环境。根据引用内容,鸿蒙系统具有分布式能力(软总线、设备虚拟化、数据管理等)和“一次开发,多端部署”的特性。然而,用户的需求是部署打包环境,这通常指的是构建HarmonyOS应用程序的编译和打包环境。 设计目标: 1. 在云服务器(Linux环境)上搭建HarmonyOS应用打包环境。 2. 支持HarmonyOS应用的多设备打包(如手机、平板、智能穿戴等)。 3. 考虑云服务器的环境特点(无图形界面,通常通过SSH操作)。 详细设计方案: 一、环境准备 1. 选择云服务器:推荐使用Ubuntu 20.04或更高版本(官方推荐环境)。 2. 配置要求: - 内存:至少8GB(推荐16GB以上,因为编译过程需要较多内存)。 - 硬盘:至少100GB(编译过程中会产生大量中间文件)。 - 网络:稳定访问HarmonyOS源码仓库和依赖下载。 二、安装依赖工具 1. 基础工具: ```bash sudo apt update sudo apt install -y git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3 python3-pip ruby ``` 2. 安装Node.js(用于JS应用开发): ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash source ~/.bashrc nvm install --lts nvm use --lts ``` 3. 安装JDK(推荐OpenJDK 11): ```bash sudo apt install -y openjdk-11-jdk ``` 三、获取HarmonyOS源码和工具 1. 注册并配置Gitee账户(HarmonyOS源码托管在Gitee): ```bash git config --global user.name "Your Name" git config --global user.email "your-email@example.com" ``` 2. 安装repo工具(用于管理HarmonyOS源码): ```bash curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo chmod a+x /usr/local/bin/repo pip3 install requests ``` 3. 下载HarmonyOS源码(以OpenHarmony为例): ```bash mkdir ~/harmony cd ~/harmony repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify repo sync -c ``` 四、配置编译环境 1. 安装HarmonyOS编译工具链(hb): ```bash python3 -m pip install build/lite ``` 2. 设置环境变量: ```bash echo 'export PATH=~/.local/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` 五、编译和打包 1. 选择目标设备(以Hi3516开发板为例): ```bash hb set # 使用方向键选择产品,例如:ipcamera_hispark_taurus@hisilicon ``` 2. 开始编译: ```bash hb build -f ``` 编译完成后,输出文件在`out/hispark_taurus/ipcamera_hispark_taurus`目录下。 六、自动化打包脚本 考虑到云服务器通常用于持续集成,我们可以编写自动化脚本: ```bash #!/bin/bash # 设置环境 export PATH=~/.local/bin:$PATH # 进入源码目录 cd ~/harmony # 同步最新代码 repo sync # 设置编译目标 hb set -p ipcamera_hispark_taurus@hisilicon # 开始编译 hb build -f # 将产物打包 cd out/hispark_taurus/ipcamera_hispark_taurus tar -czvf build_artifact.tar.gz . ``` 七、注意事项 1. 权限问题:确保运行脚本的用户有足够的权限。 2. 网络问题:云服务器需要能访问Gitee和HarmonyOS依赖的仓库。 3. 版本管理:建议使用版本标签(tag)来确保编译的版本一致。 八、扩展:支持多设备打包 由于鸿蒙支持“一次开发,多端部署”,我们可以通过修改`hb set`选择不同的产品目标,然后分别编译。例如: ```bash # 编译穿戴设备 hb set -p wearables@hisilicon hb build -f # 编译智慧屏 hb set -p smarttv@hisilicon hb build -f ``` 九、容器化部署(可选) 为了提高环境的一致性和可移植性,可以使用Docker容器: 1. 编写Dockerfile: ```Dockerfile FROM ubuntu:20.04 RUN apt update && apt install -y ... # 安装所有依赖 # 安装JDK, Node.js, repo等 # 复制源码和工具 CMD ["/bin/bash", "/path/to/build_script.sh"] ``` 2. 构建镜像并运行容器。 十、与华为云IoT平台集成(参考引用[4]) 打包后的应用可以部署到华为云IoT平台,使用API更新设备属性[^4]。 相关问题: 1. 如何解决编译过程中的内存不足问题? 2. 如何为不同的鸿蒙设备定制编译选项? 3. 如何实现鸿蒙应用的持续集成/持续部署(CI/CD)? 4. 鸿蒙应用打包后的产物如何分发到设备? 5. 如何验证打包后的鸿蒙应用是否可以在目标设备上运行? 引用: [^1]: HarmonyOS环境准备官方文档 [^2]: 鸿蒙学习路线参考 [^3]: 分布式软总线概述 [^4]: 华为云IoT设备属性更新API</think>## 在云服务器上部署鸿蒙系统打包环境的详细设计方案 ### 一、系统架构设计 ```mermaid graph TD A[云服务器] --> B[基础环境] A --> C[鸿蒙工具链] A --> D[构建系统] B --> E[Ubuntu 20.04+] B --> F[Docker/KVM虚拟化] C --> G[DevEco Studio] C --> H[OpenHarmony SDK] D --> I[Build Lite] D --> J[HPM包管理器] ``` ### 二、环境准备阶段 1. **云服务器选型要求**: - 系统:Ubuntu 20.04 LTS 或更高版本 - 配置:8核CPU/16GB RAM/100GB SSD(最低要求) - 网络:公网IP+稳定带宽(源码下载需1GB+) 2. **基础环境配置**: ```bash # 安装依赖 sudo apt update sudo apt install -y git-lfs python3.8 python3-pip openjdk-11-jdk # 配置Python环境 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 # 安装Node.js(要求14.x+) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs ``` ### 三、鸿蒙工具链安装 1. **安装DevEco Studio**(官方IDE): ```bash # 下载最新版(示例版本) wget https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta_linux unzip deveco-studio-linux-3.1.0.501.zip # 安装到系统路径 sudo mv deveco-studio /opt/ echo 'export PATH=$PATH:/opt/deveco-studio/bin' >> ~/.bashrc source ~/.bashrc ``` 2. **配置OpenHarmony SDK**: ```bash # 通过DevEco安装SDK deveco-studio --install-sdk --sdk-path=$HOME/openharmony-sdk # 设置环境变量 echo 'export OH_HOME=$HOME/openharmony-sdk' >> ~/.bashrc echo 'export PATH=$PATH:$OH_HOME/toolchains' >> ~/.bashrc ``` ### 四、源码获取与编译系统 1. **获取OpenHarmony源码**: ```bash # 安装repo工具 curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo chmod a+x /usr/local/bin/repo # 拉取源码(LTS版本) mkdir openharmony && cd openharmony repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.2-Release repo sync -c ``` 2. **配置构建系统**: ```bash # 安装编译工具 python3 -m pip install build/lite # 初始化构建环境 hb set # 选择产品类型 hb build -f # 完整编译 ``` ### 五、容器化部署方案(可选) ```Dockerfile # Dockerfile示例 FROM ubuntu:20.04 # 安装基础依赖 RUN apt update && apt install -y git-lfs python3.8 openjdk-11-jdk nodejs # 安装DevEco Studio ADD https://example.com/deveco-studio-linux.zip /tmp/ RUN unzip /tmp/deveco-studio-linux.zip -d /opt # 配置环境变量 ENV PATH="/opt/deveco-studio/bin:${PATH}" ENV OH_HOME=/openharmony-sdk # 设置工作目录 WORKDIR /build CMD ["hb", "build", "-f"] ``` 构建命令: ```bash docker build -t harmony-builder . docker run -v $(pwd):/build harmony-builder ``` ### 六、持续集成配置 1. **GitHub Actions示例**: ```yaml name: HarmonyOS CI on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Environment run: | sudo apt install -y git-lfs python3.8 openjdk-11-jdk curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs - name: Install Build Tools run: | python3 -m pip install build/lite - name: Compile Project run: | hb set hb build -f - name: Package Artifacts run: | zip -r build_artifacts.zip out/ - uses: actions/upload-artifact@v3 with: name: build-output path: build_artifacts.zip ``` ### 七、多设备打包配置 1. **设备配置文件**(`build.json`): ```json { "targets": [ { "name": "smartphone", "device": "hi3516", "kernel": "liteos_a", "subsystem": "phone" }, { "name": "wearable", "device": "hi3861", "kernel": "liteos_m", "subsystem": "wearable" } ], "hpm": { "packages": [ "@ohos/telephony", "@ohos/sensors" ] } } ``` 2. **批量打包脚本**: ```bash #!/bin/bash targets=("smartphone" "wearable" "smarttv") for target in "${targets[@]}"; do hb set -p $target hb build -f mv out/${target}_release/ ${target}_build done ``` ### 八、安全与优化 1. **安全措施**: - 使用SSH密钥认证替代密码登录 - 配置云服务器防火墙规则(仅开放必要端口) - 定期更新系统和安全补丁 2. **性能优化**: ```bash # 编译缓存配置 hb build --cache-dir /mnt/ssd/cache -f # 分布式编译(需多节点) hb build --distributed --nodes 4 -f ``` ### 九、验证与测试 1. **基本验证命令**: ```bash # 检查环境 hb --version java --version node --version # 运行单元测试 hb test -t ut ``` 2. **模拟器测试**: ```bash # 启动模拟器(需先编译) ./out/hi3516dv300/bin/qemu-run ``` ### 十、维护与监控 | **任务** | **命令/工具** | **频率** | |------------------|----------------------------|------------| | 源码更新 | `repo sync` | 每日 | | 依赖更新 | `hpm update` | 每周 | | 磁盘清理 | `hb clean && rm -rf out/` | 每次构建后 | | 性能监控 | `top` / `htop` | 实时 | ### 相关问题 1. 如何解决鸿蒙编译过程中的内存不足问题? 2. 不同鸿蒙版本(LTS/Release/Beta)的构建环境有何差异? 3. 如何实现鸿蒙应用的自动化签名流程? 4. 云服务器部署与本地构建在性能上有何对比优势? 5. 如何配置鸿蒙多设备协同打包的分布式环境? > 本方案基于OpenHarmony 3.2 LTS版本设计,实际部署请参考[官方文档](https://gitee.com/openharmony/docs)[^1]和[DevEco Studio指南](https://developer.harmonyos.com)[^2]。分布式软总线特性在打包过程中主要用于多设备协同验证[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值