0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

初次体验OpenHarmony2.0编译 棒极了!

OpenHarmony技术社区 来源:鸿蒙技术社区 作者:即构李航 2021-06-30 09:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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 获取当前分支 -j 同步线程数默认为4

repo sync -c -j8

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

更新二进制:

repo forall -c ‘git lfs pull’

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

a2fddfbc-d91a-11eb-9e57-12bb97331649.jpg

执行预处理脚本:

cd /

。。/scripts/prepare.sh

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

03

开始构建

。/build.sh --product-name Hi3516DV300

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

a2fddfbc-d91a-11eb-9e57-12bb97331649.jpg

编译中…

a335037a-d91a-11eb-9e57-12bb97331649.png

编译完成:

a34454ba-d91a-11eb-9e57-12bb97331649.png

04

最终产物

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

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

05

系统目录结构分析

a36ed320-d91a-11eb-9e57-12bb97331649.png

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

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

继续拆解 hap:

a4521ae0-d91a-11eb-9e57-12bb97331649.png

系统的 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 不能解决的问题,大家一同期待。

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

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 安卓
    +关注

    关注

    5

    文章

    2178

    浏览量

    59877
  • Docker
    +关注

    关注

    0

    文章

    526

    浏览量

    14026
  • 开源代码
    +关注

    关注

    0

    文章

    41

    浏览量

    3528
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2642

    浏览量

    69356
  • OpenHarmony
    +关注

    关注

    31

    文章

    3928

    浏览量

    20728

原文标题:OpenHarmony2.0编译初体验!

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Ubuntu下使用NucleiStudio IDE进行编译时出现问题,怎么解决?

    初次上手NucleiStudio IDE,根据教程在已有模板上创建项目时编译出现如下error console显示 查阅了很多资料也没有找出来解决的办法,想请问一下各位大神这是什么问题鸭,谢谢
    发表于 11-05 07:16

    编译vision_board_mipi_2.0inch_lvgl工程,cpu能跑到100%,竟然需要41分钟,怎么解决?

    编译vision_board_mipi_2.0inch_lvgl工程,cpu能跑到100%,竟然需要41分钟,这种有解决方案吗?
    发表于 08-29 08:19

    请问各位dayu200是不是不支持烧录64位的OpenHarmony

    我自己编译OpenHarmony5.0.2的镜像,发现如果使用arm64参数编译为64位版本,烧录后卡在开机动画无法开机,如果编译为32位就可以正常。请问dayu200不支持64位系
    发表于 08-16 17:39

    OpenHarnomy5.1下对RK3588的编译环境搭建

    拉取的是OpenHarmony5.1的代码,直接编译RK3588会报“相机“的错误。有没有大佬有成功编译的呢,这里请教一下
    发表于 06-12 17:20

    贡献 OpenHarmony 库关键配置

    # 贡献 OpenHarmony 库关键配置 #自研框架#ArkUI-X#三方框架#OpenHarmony#HarmonyOS ## 创建第三方库 - 打开 DevEco Studio 创建一个
    发表于 05-28 13:46

    迅为RK3568开发板篇OpenHarmony实操HDF驱动配置LED-编译源码

    重新编译 Openharmony4.1 源码,如下所示: ./build.sh --product-name rk3568 --ccache 或者单独编译部件 ./build.sh
    发表于 02-10 10:23

    2K0300 OpenHarmony源码构建指南

    2K0300 OpenHarmony源码构建参考如下 2K0300先锋派OpenHarmony源码构建指南 2K0300 源码编译wiki
    发表于 02-05 09:36

    迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-添加内核编译

    编译内核时将该 HDF 驱动编译到镜像中,接下来编写驱动编译脚本 Makefile,代码如下所示: 加入编译体系,填加模块目录到 drivers/hdf_core/adapter/kh
    发表于 01-22 10:35

    OpenHarmony-5.0.0的RK3588始终编译不过去,有大佬有开源方案可以参考一下吗?

    目前把openHarmony的5.1版本的RK3588编译过去了 但是openHarmony-5.0.0的RK3588始终编译不过去,有大佬有开源方案可以参考一下吗?
    发表于 01-13 16:04

    OpenHarmony程序分析框架论文入选ICSE 2025

      近日,ICSE 2025软件工程实践Track放榜,面向OpenAtom OpenHarmony(以下简称“OpenHarmony”)的ArkTS程序分析基础框架--方舟程序分析器(论文题目为
    的头像 发表于 01-02 13:41 1863次阅读
    <b class='flag-5'>OpenHarmony</b>程序分析框架论文入选ICSE 2025

    OpenHarmony源码编译后烧录镜像教程,RK3566鸿蒙开发板演示

    本文介绍瑞芯微主板/开发板编译OpenHarmony源码后烧录镜像的教程,触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持开源鸿蒙OpenHarmony3.2-5.0系
    的头像 发表于 12-30 10:08 1537次阅读
    <b class='flag-5'>OpenHarmony</b>源码<b class='flag-5'>编译</b>后烧录镜像教程,RK3566鸿蒙开发板演示

    Triton编译器与其他编译器的比较

    Triton编译器与其他编译器的比较主要体现在以下几个方面: 一、定位与目标 Triton编译器 : 定位:专注于深度学习中最核心、最耗时的张量运算的优化。 目标:提供一个高度抽象、灵活、高效
    的头像 发表于 12-24 17:25 1602次阅读

    Triton编译器功能介绍 Triton编译器使用教程

    Triton 是一个开源的编译器前端,它支持多种编程语言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一个可扩展和可定制的编译器框架,允许开发者添加新的编程语言特性和优化技术
    的头像 发表于 12-24 17:23 2728次阅读

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-内核编译初次编译

    接下来我们就进行内核代码的初次编译,直接使用我们适配好的Linux内核源码进行编译。为了使编译操作更加简单,我们提供了编译脚本,将
    发表于 12-18 08:55

    飞凌嵌入式ElfBoard ELF 1板卡-内核编译初次编译

    接下来我们就进行内核代码的初次编译,直接使用我们适配好的Linux内核源码进行编译。为了使编译操作更加简单,我们提供了编译脚本,将
    发表于 12-17 09:34