前言
终于等到下载代码的时刻了,业内不叫下载代码叫“拉代码”,上传代码叫“上库”,编译叫构建。
二、避坑指南
1. repo sync -c -j4
,同步代码,数字是否越大越好?
要根据电脑配置选取合适的核数。数字 4 是指拉去代码的核数,数字越大拉取速度越快,太大会导致命中率下降,因而拉取代码失败,选择太小,拉取代码速度缓慢。
2. 系统编译 32 位,用例、组件能否编译成 64 位?
--target-cpu arm64
, 表明为编译 64 位系统,没有则默认 32 位系统;- 系统编译完成后,测试用例以及个别组件编译也必须和系统位数一致,否则会导致崩溃 Crash;
三、代码拉取及编译
1. 代码拉取官方手册
参考网址:zh-cn/device-dev/get-code/sourcecode-acquire.md · OpenHarmony/docs - Gitee.com
2. master 主干代码拉取
拉取代码之前要建立一个代码目录,例如: master_code
mkdir master_code
cd master_code
在新目录下拉取代码,如下指令逐条执行
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo start master --all
repo forall -c 'git lfs pull'
bash build/prebuilts_download.sh
3.修改 dash 为 bash
终端输入命令: ls -l /bin/sh
显示结果是: /bin/sh -> dash
输入: sudo dpkg-reconfigure dash
出现选择,选择否回车,重新输入:ls -l /bin/sh
wyyname@n019949:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 9 6月 16 2023 /bin/sh -> /bin/bash
四、系统全量编译
1. Hi3518 编译(属于 L1)
输入'hb set', 上下移动箭头选择产品型号,回车选择对应开发板,例如选择 ipcamera_hispart_aries
执行 hb build
构建
编译完成,如下图:
2. 3516-linux 编译
输入'hb set',选择 ipcamera_hispark_taurus_linux
使用 hb build -f
全量构建
3516/3518/3861 是同类型,如图:
编译成功
3. Hi3516 编译(属于 L2)
由于 L2 目前接触只涉及 3516
在根目录输入:./build.sh --product-name Hi3516DV300
Hi3516DV300 编译成功
4. RK3568 编译
虚拟机 13GB 内存、12 个处理器编译一套全量代码在 2024 年 1 月 1 日前至少需要 4 个小时。
1. 32 位系统编译(默认)
./build.sh --product-name rk3568 --ccache
2. 64 位系统编译
./build.sh --product-name rk3568 --target-cpu arm64 --ccache
3. 编译成功
五、组件编译举例
1. 单独编译内核
cd out/kernel/src_tmp/linux-5.10
export PRODUCT_PATH=vendor/hihope/rk3568
./make-ohos.sh TB-RK3568X0
2. Audio so 或者 bin 单独编译
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/hal/hdi_passthrough:hdi_audio
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:audio_sample_capture --target-cpu arm64
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:audio_sample_event --target-cpu arm64
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:audio_sample_render --target-cpu arm64
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:idl_render
./build.sh --product-name rk3568 --build-target drivers/peripheral/audio/test/sample:idl_capture
3. audio 用例全编译
./build.sh --product-name rk3568 --build-target audio_test_entry --target-cpu arm64
4. 单编 arkui
./build.sh --product-name rk3568 --ccache --build-target libace_compatible
5. 单编 multimodalinput
./build.sh --product-name rk3568 --ccache --build-target libmmi-server
./build.sh --product-name rk3568 --ccache --build-target libmmi-util
六、恭喜您!
下载、编译 OpenHarmony 代码成功,你可以尽情遨游在 OpenHarmony 智慧的海洋,这里汇聚了全世界几十年来无数优秀大佬智慧的结晶,在这里你可以汲取丰富多样的知识,为你今后的开发之路积累必要的知识库,说不定还能找到梦寐以求的宝藏!
当然,距离一个专业的 OpenHarmony 贡献者,还有两步之遥。提交代码和提交代码之前的修改、烧录、测试,重点是烧录。
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙(HarmonyOS NEXT)最新学习路线
-
HarmonOS基础技能
- HarmonOS就业必备技能
- HarmonOS多媒体技术
- 鸿蒙NaPi组件进阶
- HarmonOS高级技能
- 初识HarmonOS内核
- 实战就业级设备开发
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开发入门教学视频》
《鸿蒙生态应用开发V2.0白皮书》
《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建
《鸿蒙开发基础》
- ArkTS语言
- 安装DevEco Studio
- 运用你的第一个ArkTS应用
- ArkUI声明式UI开发
- .……
《鸿蒙开发进阶》
- Stage模型入门
- 网络管理
- 数据管理
- 电话服务
- 分布式应用开发
- 通知与窗口管理
- 多媒体技术
- 安全技能
- 任务管理
- WebGL
- 国际化开发
- 应用测试
- DFX面向未来设计
- 鸿蒙系统移植和裁剪定制
- ……
《鸿蒙进阶实战》
- ArkTS实践
- UIAbility应用
- 网络案例
- ……
获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。