鸿蒙OpenHarmony【轻量系统编写“Hello World”程序】 (基于Hi3861开发板)

news/2024/9/24 12:31:17/

 

 编写“Hello World”程序

下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。

前提条件

已参考鸿蒙开发>鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。,创建Hi3861开发板的源码工程。

操作步骤

搜狗高速浏览器截图20240326151450.png

  1. 确定目录结构。

    开发者编写业务代码时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。

    例如:在app下新增业务my_first_app,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下:

    .
    └── applications└── sample└── wifi-iot└── app└── my_first_app│── hello_world.c└── BUILD.gn

  2. 编写业务代码。

    新建./applications/sample/wifi-iot/app/my_first_app下的hello_world.c文件,在hello_world.c中新建业务入口函数HelloWorld,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中)

    #include <stdio.h>
    #include "ohos_init.h"
    #include "ohos_types.h"void HelloWorld(void)
    {printf("[DEMO] Hello world.\n");
    }
    SYS_RUN(HelloWorld);

  3. 编写用于将业务构建成静态库的BUILD.gn文件。

    新建./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。

    如步骤1所述,BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,需由开发者完成填写。

    static_library("myapp") {sources = ["hello_world.c"]include_dirs = ["//utils/native/lite/include"]
    }
    • static_library中指定业务模块的编译结果,为静态库文件libmyapp.a,开发者根据实际情况完成填写。
    • sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。
    • include_dirs中指定source所需要依赖的.h文件路径。
  4. 添加新组件。

    修改文件build/lite/components/applications.json,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"##start##"和"##end##"之间为新增配置("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

    icon-note.gif

     说明:  本章节操作是以OpenHarmony-v3.1-Release版本为例进行操作的,该版本中,组件配置文件为build/lite/components/applications.json;若源码版本大于等于OpenHarmony 3.2 Beta2时,组件配置文件为build/lite/components/communication.json。

    {"components": [{"component": "camera_sample_communication","description": "Communication related samples.","optional": "true","dirs": ["applications/sample/camera/communication"],"targets": ["//applications/sample/camera/communication:sample"],"rom": "","ram": "","output": [],"adapted_kernel": [ "liteos_a" ],"features": [],"deps": {"components": [],"third_party": []}},
    ##start##{"component": "hello_world_app","description": "hello world samples.","optional": "true","dirs": ["applications/sample/wifi-iot/app/my_first_app"],"targets": ["//applications/sample/wifi-iot/app/my_first_app:myapp"],"rom": "","ram": "","output": [],"adapted_kernel": [ "liteos_m" ],"features": [],"deps": {"components": [],"third_party": []}},
    ##end##{"component": "camera_sample_app","description": "Camera related samples.","optional": "true","dirs": ["applications/sample/camera/launcher","applications/sample/camera/cameraApp","applications/sample/camera/setting","applications/sample/camera/gallery","applications/sample/camera/media"],

  5. 修改单板配置文件。

    修改文件vendor/hisilicon/hispark_pegasus/config.json,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"##start##"和"##end##"之间为新增条目("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):

          {"subsystem": "applications","components": [
    ##start##{ "component": "hello_world_app", "features":[] },
    ##end##{ "component": "wifi_iot_sample_app", "features":[] }]},

最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发>鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发>鸿蒙开发的学习路线图。

高清完整版请点击→鸿蒙NEXT星河版开发学习文档》

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细资料鸿蒙OpenHarmony )学习手册(共计1236页)与鸿蒙OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

鸿蒙 (OpenHarmony)开发学习视频》

图片

鸿蒙生态应用开发V2.0白皮书》

图片

鸿蒙 (OpenHarmony)开发基础到实战手册》

获取这份鸿蒙星河版学习资料,请点击→鸿蒙NEXT星河版开发学习文档》

OpenHarmony北向、南向开发环境搭建

图片

鸿蒙开发>鸿蒙开发基础》

  1. ArkTS语言

  2. 安装DevEco Studio

  3. 运用你的第一个ArkTS应用

  4. ArkUI声明式UI开发

  5. .……

图片

鸿蒙开发>鸿蒙开发进阶》

  1. Stage模型入门

  2. 网络管理

  3. 数据管理

  4. 电话服务

  5. 分布式应用开发

  6. 通知与窗口管理

  7. 多媒体技术

  8. 安全技能

  9. 任务管理

  10. WebGL

  11. 国际化开发

  12. 应用测试

  13. DFX面向未来设计

  14. 鸿蒙系统>鸿蒙系统移植和裁剪定制

  15. ……

图片

鸿蒙开发>鸿蒙开发实战》

  1. ArkTS实践

  2. UIAbility应用

  3. 网络案例

  4. ……

图片

 获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发>鸿蒙开发,未来将会支持 50 万款的应用那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发>鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!


http://www.ppmy.cn/news/1429176.html

相关文章

vue中的inject和provide

在Vue中&#xff0c;provide 和 inject 是用来实现祖先组件向子孙组件传递数据的一种高级组件通信方式。provide 可以在祖先组件中定义数据&#xff0c;而 inject 可以在子孙组件中接收这些数据。这种传递方式不受组件层级限制&#xff0c;非常适合于跨多层级的组件通信。 用法…

配置 rust国内源

rust crate.io 配置国内源&#xff08;cargo 国内源&#xff09; warning: spurious network error (2 tries remainin..._warning: spurious network error (3 tries remaining-CSDN博客

linux apt-get安装Jenkins

这个错误信息表明在尝试更新软件包索引时&#xff0c;APT 软件包管理器无法验证 Jenkins 存储库的 GPG 签名&#xff0c;因为缺少相应的公钥。此外&#xff0c;还提示 sources.list 和 jenkins.list 文件重复配置了相同的目标。 要解决这个问题&#xff0c;请按照以下步骤操作…

Linux——进程基本概念中篇

Linux——进程基本概念中篇 文章目录 Linux——进程基本概念中篇一、通过系统调用创建进程——fork1.1 fork的理解1.2 fork的返回值 二、进程状态2.1 运行状态2.2 睡眠状态和休眠状态2.3 停止状态和死亡状态2.4 僵尸进程2.5 孤儿进程2.6 前台和后台进程 三、进程优先级3.1 查看…

使用Canal同步MySQL 8到ES中小白配置教程

&#x1f680; 使用Canal同步MySQL 8到ES中小白配置教程 &#x1f680; 文章目录 &#x1f680; 使用Canal同步MySQL 8到ES中小白配置教程 &#x1f680;**摘要****引言****正文**&#x1f4d8; 第1章&#xff1a;初识Canal1.1 Canal概述1.2 工作原理解析 &#x1f4d8; 第2章&…

代码质量与自动化:ESLint Prettier配置与使用

代码质量与自动化是现代软件开发中非常重要的一部分。ESLint和Prettier是两个流行的工具&#xff0c;可帮助开发人员提高代码质量并自动化代码格式化。 ESLint是一个JavaScript和TypeScript的静态代码分析工具&#xff0c;可以帮助开发人员在编写代码时发现和修复常见的问题&a…

Python机器学习算法库scikit-learn学习之决策树实现方法

Scikit-learn 是一个功能强大的Python机器学习库&#xff0c;它提供了各种算法&#xff0c;包括决策树&#xff08;Decision Tree&#xff09;。决策树是一种直观的算法&#xff0c;用于分类和回归任务。以下是如何使用 scikit-learn 实现决策树的基本步骤&#xff1a; 1. 导入…

9.Eureka服务发现+Ribbon+RestTemplate服务调用

order-service服务通过服务名称来代替 ip:port的方式访问user-service服务的接口。 原来的请求代码&#xff1a; Service public class OrderServiceImpl implements OrderService {Autowiredprivate OrderMapper orderMapper;Autowiredprivate RestTemplate restTemplate;Ov…