• 鸿蒙OpenHarmony【小型系统编写“Hello World”程序】 (基于Hi3516开发板)


     编写“Hello World”程序

    下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。

    前提条件

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

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

    示例目录

    示例完整目录如下: HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿

    1. applications/sample/hello
    2. │── BUILD.gn
    3. └── src
    4. └── helloworld.c

    开发步骤

    请在源码目录中通过以下步骤创建“Hello World”应用程序。

    1. 新建目录及源码。

      新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。

      1. #include
      2. int main(int argc, char **argv)
      3. {
      4. printf("\n\n");
      5. printf("\n\t\tHello OHOS!\n");
      6. printf("\n\n\n");
      7. return 0;
      8. }

    2. 新建编译组织文件。

      新建applications/sample/hello/BUILD.gn文件,内容如下所示:

      1. import("//build/lite/config/component/lite_component.gni")
      2. lite_component("hello-OHOS") {
      3. features = [ ":helloworld" ]
      4. }
      5. executable("helloworld") {
      6. output_name = "helloworld"
      7. sources = [ "src/helloworld.c" ]
      8. }

    3. 添加新组件。

      修改文件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。

      1. {
      2. "components": [
      3. {
      4. "component": "camera_sample_communication",
      5. "description": "Communication related samples.",
      6. "optional": "true",
      7. "dirs": [
      8. "applications/sample/camera/communication"
      9. ],
      10. "targets": [
      11. "//applications/sample/camera/communication:sample"
      12. ],
      13. "rom": "",
      14. "ram": "",
      15. "output": [],
      16. "adapted_kernel": [ "liteos_a" ],
      17. "features": [],
      18. "deps": {
      19. "components": [],
      20. "third_party": []
      21. }
      22. },
      23. ##start##
      24. {
      25. "component": "hello_world_app",
      26. "description": "hello world samples.",
      27. "optional": "true",
      28. "dirs": [
      29. "applications/sample/hello"
      30. ],
      31. "targets": [
      32. "//applications/sample/hello:hello-OHOS"
      33. ],
      34. "rom": "",
      35. "ram": "",
      36. "output": [],
      37. "adapted_kernel": [ "liteos_a" ],
      38. "features": [],
      39. "deps": {
      40. "components": [],
      41. "third_party": []
      42. }
      43. },
      44. ##end##
      45. {
      46. "component": "camera_sample_app",
      47. "description": "Camera related samples.",
      48. "optional": "true",
      49. "dirs": [
      50. "applications/sample/camera/launcher",
      51. "applications/sample/camera/cameraApp",
      52. "applications/sample/camera/setting",
      53. "applications/sample/camera/gallery",
      54. "applications/sample/camera/media"
      55. ],

    4. 修改单板配置文件。

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

      1. {
      2. "subsystem": "applications",
      3. "components": [
      4. { "component": "camera_sample_app", "features":[] },
      5. { "component": "camera_sample_ai", "features":[] },
      6. ##start##
      7. { "component": "hello_world_app", "features":[] },
      8. ##end##
      9. { "component": "camera_screensaver_app", "features":[] }
      10. ]
      11. },

    我们程序员都知道学习开发技术,最先是从语言学起,鸿蒙语言有TS、ArkTS等语法,那么除了这些基础知识之外,其核心技术点有那些呢?下面就用一张整理出的鸿蒙学习路线图表示:

    从上面的OpenHarmony技术梳理来看,鸿蒙的学习内容也是很多的。现在全网的鸿蒙学习文档也是非常的少,下面推荐一些:完整内容可在头像页保存,或这qr23.cn/AKFP8k甲助力

    内容包含:《鸿蒙NEXT星河版开发学习文档》

    • ArkTS
    • 声明式ArkUI
    • 多媒体
    • 通信问题
    • 系统移植
    • 系统裁剪
    • FW层的原理
    • 各种开发调试工具
    • 智能设备开发
    • 分布式开发等等。

    这些就是对往后开发者的分享,希望大家多多点赞关注喔!

  • 相关阅读:
    CData Drivers for Azure Active Directory
    求SM16106SC如何连接驱动四位数码管
    前端移动web高级详细解析一
    Vue3+elementplus搭建通用管理系统实例五:后台主页搭建上
    ARM裸机-18(SD卡启动)
    Spring-IOC-FactoryBean机制(难点且重点)
    docker安装jenkins运行mavne编译打包项目
    【JVM】一文带你了解JVM中的垃圾回收机制(GC)——内含图解
    c++面向对象基础编程——运算符重载
    leetcode 第 361 场周赛
  • 原文地址:https://blog.csdn.net/m0_62167422/article/details/138094122