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

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

3天内不再提示

鸿蒙开发【设备开发基础知识】

jf_46214456 2024-01-29 18:44 次阅读

一、设备开发介绍

1. 环境搭建与源码获取

  • 环境搭建

搭建OpenHarmony 的系统环境,需要Windows系统与Ubuntu系统结合使用。

​ Windows系统负责烧录、测试、与OpenHarmony在windows系统cmd模式下交互。

​ Ubuntu系统负责源码管理、阅读、开发、编译。Ubuntu系统,通过在Windows系统安装虚拟机,配置初始化虚拟机(内存推荐16GB及以上、CPU推荐4核及以上),虚拟机运行安装Ubuntu系统。

  • 源码获取

Ubuntu环境下,更新软件源命令sudo apt-get update。通过sudo apt_get install git git-lfs,安装git客户端与git-lfs,命令 git --version 查看git是否成功。 配置git客户端 。

安装码云repo工具,通过mkdir命令,在固定目录下创建存放repo的文件目录。通过命令 curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o 目录,获取到repo工具。安装配置完成之后,通过一下命令步骤进行OpenHarmony源码获取 。

2. HarmonyOS源码编译

  • 编译环境搭建

Ubuntu环境下,编译OpenHarmony源码之前,必须进行编译环境搭建。通过apt_get和pip3 install命令安装配置编译环境。通过 apt-get update -y 更新软件源。更新成功之后,通过apt-get命令进行OpenHarmony源码编译之前安装配置。

  • 编译命令

成功配置编译环境,Ubuntu环境下,打开CMD命令行窗口,通过cd命令进入HarmonyOS目录下,目录结构如下。

OpenHarmony源码根目录下,通过执行命令 bash build/prebuilts_download.sh 脚本进行预编译,安装编译器及二进制工具,成功提示。

接着执行命令 ./build.sh system_size=standard product_name=harmonyos 编译OpenHarmony源码。./build.sh 同时也支持其他多种参数

--source-root-dir=SOURCE_ROOT_DIR                 # 指定路径
--product-name=PRODUCT_NAME                       # 指定产品名
--device-name=DEVICE_NAME                         # 指定装置名称
--target-os=TARGET_OS                             # 指定操作系统
-T BUILD_TARGET, --build-target=BUILD_TARGET      # 指定编译目标,可以指定多个

OpenHarmony源码编译成功,OpenHarmony源码根目录下 out/harmonyos/packages/phone/images, Ubuntu环境的终端显示。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

  • 编译出错

编译OpenHarmony源码的过程中,可能出现各类问题。以下枚举一些异常情况。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区
解决方法,通过执行命令 sudo apt install openjdk-11.0.16 修复这个问题。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

解决方法,通过执行命令 sudo apt install libtinfo5 修复这个问题。

3. OpenHarmony烧录简介

Ubuntu环境下,编译OpenHarmony源码成功,OpenHarmony镜像文件存放的路径,OpenHarmony源码存放路径/out/harmony/packages/phone/images。Windows环境下使用烧录工具瑞芯微开发工具 v2.84(RKDevTool.exe),烧录OpenHarmony文件到开发版3568。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

windows环境下,使用瑞芯微开发工具之前需要安装瑞芯微驱动,打开瑞芯微开发工具,同时通电开发板,插入USB。烧录工具会显示发现一个MASKROM设备。开发板MASKROM模式无法成功烧录系统。开发板需要进入LOADER模式才能成功烧录OpenHarmony系统。如何进入LOADER模式?需要先通过一个牙签按住3568开关,再进行通电,通电之后继续按住3568开关。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

烧录工具页面会显示发现一个LOADER设备,放开按住3568的开关。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

瑞芯微开发工具里面选择编译成功后生成的OpenHarmony镜像,每一个镜像文件顺序都不能有任何的颠倒。一旦选择镜像文件出现颠倒,烧录的时候很大概率会将3568开发板直接烧坏,导致3568开发板无法使用。正确选择OpenHarmony镜像文件,执行3568开发板烧录。烧录工具会提示烧录是否成功。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

4. OpenHarmony测试用例

OpenHarmony为开发者提供了一套全面的自测试框架,开发者可根据测试需求开发相关测试用例。同时开发者也能开发单独测试函数功能的可执行程序。

window模块功能,创建一个cpp文件,内部编写main函数。main函数编写业务逻辑流程。测试用例在源码路径(foundation/windowmanager/snapshot)。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

编写BUILD.gn增加编译配置。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

cpp目录上层目录下,bundle.json文件增加需要编译的模块。

#打卡不停更# - OpenHarmony/docs开发入门-鸿蒙开发者社区

执行如下命令

./build.sh system_size=standard product_name=harmonyos

生成 snapshot_display,存放目录 out/harmonyos/window/window_manager。

在 snapshot_display 目录下,执行如下命令

hdc file send snapshot_display /system/bin

推送开发板 /system/bin目录。

出现异常提示 [Fail]Error opening file: read-only file system, path:/system/bin/snapshot_display,权限不够。执行命令

hdc shell mount -o remount,rw /

解决权限问题。

设置执行权限 ,执行命令

hdc shell chmod a+x /system/bin/snapshot_display

执行推送到开发板程序snapshot_display。

文件存放开发板的实际路径

5. OpenHarmony源码阅读

推荐使用[DevEco Studio]项目管理工具管理OpenHarmony源码,学习OpenHarmony项目工程的整体目录结构及进行代码阅读,其他项目管理工具请自行选择适合的个人学习的工具。

QQ截图20240128201315.png

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

    关注

    183

    文章

    2628

    浏览量

    65277
  • 鸿蒙
    +关注

    关注

    55

    文章

    1645

    浏览量

    42124
  • OpenHarmony
    +关注

    关注

    23

    文章

    3320

    浏览量

    15161
  • 鸿蒙星河
    +关注

    关注

    0

    文章

    8

    浏览量

    15
收藏 人收藏

    评论

    相关推荐

    哪有FPGA的verilog编程基础知识

    没接触过FPGA开发,那个verilog编程有什么入门基础知识学习的?
    发表于 04-29 23:09

    鸿蒙OS崛起,鸿蒙应用开发工程师成市场新宠

    』,才是我创造的动力。 关注小编,同时可以期待后续文章ing?,不定期分享原创知识。 更多鸿蒙最新技术知识点,请关注作者博客:鸿蒙实战经验分享:鸿蒙
    发表于 04-29 17:32

    鸿蒙OS开发学习:【尺寸适配实现】

    鸿蒙开发中,尺寸适配是一个重要的概念,它可以帮助我们在不同屏幕尺寸的设备上正确显示和布局我们的应用程序。本文将介绍如何在鸿蒙开发中实现尺寸
    的头像 发表于 04-10 16:05 662次阅读
    <b class='flag-5'>鸿蒙</b>OS<b class='flag-5'>开发</b>学习:【尺寸适配实现】

    鸿蒙实战项目开发:【短信服务】

    、OpenHarmony 多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发鸿蒙项目实战等等)鸿蒙(Harmony NEXT) 技术知识点 如果你是一名An
    发表于 03-03 21:29

    未来从事鸿蒙开发?是否会有前景?

    鸿蒙的未来发展肯定很有前景的,鸿蒙作为新出的国产操作系统。它不仅只是手机操作系统,鸿蒙的出发点就是万物互联。包含原生应用开发、车载、智能设备
    发表于 02-19 21:31

    鸿蒙开发者预览版如何?

    、原生智能、原生互联,6大极致原生体验。 我初步阅读了鸿蒙的源码后,基本上可以确定是全自研底座,已经看不到Android的身影了。作为开发者,如果想往鸿蒙方向发展,就需要系统性学起。鸿蒙
    发表于 02-17 21:54

    使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

    随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发鸿蒙原生应用,也可将现有的
    的头像 发表于 02-02 16:09 391次阅读
    使用 Taro <b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b>原生应用 —— 快速上手,<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>开发</b>指南

    鸿蒙不再兼容安卓,那么鸿蒙开发者是否会大增?

    华为的纯血版鸿蒙已出现。紧接着各大厂商都纷纷加入原生应用开发当中,其中包括支付宝、京东、美团等一线大厂,200 多应用厂商正在加速开发鸿蒙原生应用。
    发表于 01-31 22:17

    鸿蒙开发教程

    去年8 月份华为发布会上,华为发布了HarmonyOS NEXT预览版,宣布不再兼容安卓应用。大家期待的纯血鸿蒙终于要来临了,next 预览版本现在已经开放申请渠道了,Next 开发者预览版本目前
    的头像 发表于 01-31 17:11 326次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>教程

    现在加入鸿蒙开发咋样

    现在加入鸿蒙开发咋样? 各位前辈, 现在加入鸿蒙开发还有前景吗?
    发表于 01-29 18:07

    鸿蒙开发之ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发
    的头像 发表于 01-24 16:44 621次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之ArkTS<b class='flag-5'>基础知识</b>

    鸿蒙ArkUI开发-Tabs组件的使用

    鸿蒙ArkUI开发-Tabs组件的使用
    的头像 发表于 01-19 16:01 448次阅读
    <b class='flag-5'>鸿蒙</b>ArkUI<b class='flag-5'>开发</b>-Tabs组件的使用

    嵌入式开发系统基础知识

    电子发烧友网站提供《嵌入式开发系统基础知识.pdf》资料免费下载
    发表于 11-17 10:59 0次下载
    嵌入式<b class='flag-5'>开发</b>系统<b class='flag-5'>基础知识</b>

    鸿蒙 OS 应用开发初体验

    什么是 HarmonyOS? HarmonyOS(鸿蒙操作系统)是华为公司开发的一款基于微内核的分布式操作系统。它是一个面向物联网(IoT)时代的全场景操作系统,旨在为各种类型的设备提供统一
    发表于 11-02 19:38

    C语言基础知识

    C语言是单片机开发中的必备基础知识,这里就列举部分STM32学习中会遇见的C 语言基础知识点。 01    位操作   下面我们先讲解几种位操作符,然后讲解位操作使用技巧。C语言支持如下6中位操作
    的头像 发表于 05-31 09:07 676次阅读
    C语言<b class='flag-5'>基础知识</b>点