首页专栏详情
打赏
OpenHarmony2.0编译初体验!
易百纳技术社区 快乐小鸟 2021-06-28 17:29:22

2021 年 6 月 2 号,鸿蒙发布了 2.0 操作系统,并且对外公开了 2.0 操作系统的源代码。

看了介绍后发现鸿蒙的分布式能力非常强大,本来想拿多台设备结合 “音视频 SDK” 的功能开发多终端分布式的功能,比如 a 设备录视频,b 设备做采集推流,或者声音在另一台设备播放。

由于测试机还没有到货,先去编译一个鸿蒙系统玩玩吧,开源的系统是完全脱离安卓的独立鸿蒙系统,另外因为也是刚接触,还是会踩一些坑。

鸿蒙开源代码结构介绍

鸿蒙开源了两份源码:

轻量级系统,小型系统

标准系统源码(2.0 Canary)

华为开发文档并没有对这两个系统做介绍,“2.0 Canary” 也是最近开源的,我理解 2.0 可能是给更大性能与内存的设备使用的,例如手机,电视等。

小型系统应该给 IoT 一些物联网设备使用,例如智能冰箱呀,智能电风扇等,好了废话不多说,一起来构建鸿蒙标准系统源码吧。

01 准备环境

设备要求:Ubuntu18

编译工具:(如果使用 docker 可以无视) https://repo.huaweicloud.com/harmonyos/os/2.0/tool_chain/

另外华为非常贴心,还提供了 docker 带编译环境的镜像,由于我用的笔记本是 mac os 必须得用 docker 了,另外强烈推荐 docker,快好,省心省力,否则你还得安装上面一堆工具。

docker 镜像地址:

docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker:0.0.4

执行 “docker run -it xxx:tag /bin/bash” 运行并进入 docker。

02 下载源码

repo 介绍:当初由于安卓源码非常大,为了方便管理各个仓库,用 xml 的方式记录了整个系统 git 库的数量,名称,路径等,便于管理,鸿蒙也用的 repo 管理各个仓库,还是挺香的,避免了各种子模块杂乱脏的问题。

repo 初始化:

repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify 使用此命令初始化时,可能会因为网络慢的问题导致代码更新失败,可以尝试以下命令来初始化: repo init -u https://gitee.com/openharmony/manifest.git -b ssh/master --no-repo-verify

同步源码:

// -c 获取当前分支 -

漫长的等待中… 以目前网速来看 需要一段时间。

更新二进制:

repo forall -c 'git lfs pull'

居然失败了,看了下错误信息,华为给的这个 docker 镜像没有安装 lfs,接下来手动装一下 git lfs 吧, 执行 “apt-get install git-lfs” 解决。

执行预处理脚本:

cd / ../scripts/prepare.sh

这个脚本是去下载构建工具建立构建环境的,比如 cmake gn 等一些构建工具,没有跑这个脚本编译会报各种错。

03 开始构建

./build.sh --product-name Hi3516DV300

目前开源的这份源码里只有 Hi3516DV300,其他没找到:

编译中…

编译完成:

04 最终产物

镜像输出在 out/ohos-arm-release/packages/phone/images/ 目录下:

上图可以看到各个分区镜像已经编译出来了,如果有开发板的话可以直接烧录进去。有机会入个开发板玩玩,网上搜可以直接购买。

05 系统目录结构分析

从以上结构分析,跟 Linux 与安卓目录结构大体类似,包括 vendor 分区,但是目前没有发现安卓相关的东西,也不能运行安卓 apk 只能运行华为自家的 hap。

可以看到系统自带的桌面,状态栏,设置等都是 hap。

继续拆解 hap:

系统的 App 没有了 Java 的身影,使用 JS 作为首选语言开发,非常的轻量。

06 官网资料

官网源码拉取文档:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/%E8%8E%B7%E5%8F%96%E5%B7%A5%E5%85%B7.md#section69141039143518

官网构建教程:

https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/%E6%BA%90%E7%A0%81%E8%8E%B7%E5%8F%96.md

07 关于个人畅想

鸿蒙不止是手机操作系统,他是一整套解决方案,解决安卓与 iOS 不能解决的问题,大家一同期待。

下次测试机到货后,我想结合多终端与音视频来开发一些好玩创新的东西分享出来。

来源:鸿蒙技术社区

4074
5
96
打赏
给作者打赏,鼓励他抓紧创作吧~
评论
0个
内容存在敏感词
相关专栏
打赏作者
易百纳技术社区
快乐小鸟
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

审核成功

发布时间设置
发布时间:

审核失败

失败原因
备注
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区