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

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

3天内不再提示

如何添加一个自己的软件包

电子发烧友开源社区 来源:HarmonyOS官方合作社区 作者:HarmonyOS官方合作社 2022-03-03 09:22 次阅读

摘要

本文简单介绍Hi3861WiFi操作,怎么连接到热点,查看IP,ping服务器等。

适合群体

适用于润和Hi3861开发板的开发人员。

1、添加第一个a_myparty软件包

打开鸿蒙系统的源码,可以看到有这么一个文件夹:third_party。里面存放的是第三方的代码。

如何添加一个自己的软件包

点开我们可以看到有很多第三方代码:

ee4b57b2-9529-11ec-952b-dac502259ad0.png

后续我们如果需要往系统中添加、移植任何开源代码,都可以添加到这个文件夹中。接下来,教大家如何添加一个自己的软件包,名字为a_myparty。

1. 新建一个文件夹a_myparty

2. 往文件中放置软件包源码

这里我放在的是 myparty.c和myparty.h文件

3. 新建BUILD.gn文件

整个代码目录如下:

如何添加一个自己的软件包

4. myparty.c文件内容如下:

其实,我这个只是为了演示的,所以里面代码没什么作用

#include 
void myparty_test(void){  printf("first myparty 
");}

向右滑动查看完整代码

5. BUILD.gn文件内容如下:

BUILD.gn文件主要是描述了软件包的相关信息,包括编译哪些源文件,头文件路径、编译方式(目前Hi3861 只支持静态加载)

import("//build/lite/config/component/lite_component.gni")import("//build/lite/ndk/ndk.gni")
#这里是配置头文件路径config("a_myparty_config") {  include_dirs = [    ".",  ]}
#这里是配置要编译哪些源码a_myparty_sources = [  "myparty.c",]
#这里是静态链接,类似于Linux系统的 .a文件lite_library("a_myparty_static") {  target_type = "static_library"  sources = a_myparty_sources  public_configs = [ ":a_myparty_config" ]
}
#这里是动态加载,类似于Linux系统的 .so文件lite_library("a_myparty_shared") {  target_type = "shared_library"  sources = a_myparty_sources  public_configs = [ ":a_myparty_config" ]
}
#这里是入口,选择是静态还是动态ndk_lib("a_myparty_ndk") {
  if (kernel_type != "liteos_m") {    lib_extension = ".so"    deps = [      ":a_myparty_shared"    ]  } else {    deps = [      ":a_myparty_static"    ]  }  head_files = [    "//third_party/a_myparty"  ]
}

向右滑动查看完整代码

到了这里我们基本上就写完了,最后我们要让这个第3放软件包编译到我们固件中。

2、如何使用a_myparty软件包

我们在app里面新建一个 myparty_demo的文件夹,目录如下:

如何添加一个自己的软件包

其中BUILD.gn内容如下:

static_library("myparty_demo") {  sources = [    "myparty_demo.c"  ]#注意需要把a_myparty的头文件路径加进来  include_dirs = [    "//utils/native/lite/include",    "//third_party/a_myparty",  ]
#表示需要a_myparty 软件包  deps = [    "//third_party/a_myparty:a_myparty_static",  ]}

向右滑动查看完整代码

myparty_demo.c里面内容如下:

#include #include "ohos_init.h"#include "ohos_types.h"
#include "myparty.h"
void myparty_demo(void){  myparty_test();  printf("___________>>>>>>>>>>>>>>>>>>>> [DEMO] Hello world.
");}SYS_RUN(myparty_demo);

向右滑动查看完整代码

编译烧录后可以看到myparty_test的打印信息:

如何添加一个自己的软件包

本小节文章就到这里了,后续文章会持续更新,欢迎大家持续关注哦~

原文标题:OpenHarmony轻量系统开发【10】编写自己的软件包

文章出处:【微信公众号:HarmonyOS官方合作社区】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红


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

    关注

    25

    文章

    4926

    浏览量

    97139
  • 代码
    +关注

    关注

    30

    文章

    4736

    浏览量

    68302
  • 软件包
    +关注

    关注

    0

    文章

    100

    浏览量

    11573

原文标题:OpenHarmony轻量系统开发【10】编写自己的软件包

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Openwrt开发指南 第12章 添加OpenWrt软件包

    OpenWrt是比较完善的嵌入式Linux开发平台,在无线路由器应用上已有4000多个软件包。我们可以在其基础上增加软件包,以扩大其应用范围。在OpenWrt中增加
    的头像 发表于 06-29 09:09 8627次阅读

    RT-Thread Studio添加软件包报错怎么解决?

    RT-Thread Studio添加软件包报错ImportError: No module named psutil
    发表于 03-01 08:41

    如何往鸿蒙系统源码中添加第三方软件包

    看到有很多第三方代码: 后续我们如果需要往系统中添加、移植任何开源代码,都可以添加到这个文件夹中。接下来,教大家如何添加
    发表于 10-22 22:04

    OpenHarmony轻量系统开发【10】编写自己软件包

    看到有很多第三方代码:后续我们如果需要往系统中添加、移植任何开源代码,都可以添加到这个文件夹中。接下来,教大家如何添加
    发表于 01-25 16:44

    RTThread settings添加软件包界面不显示求解

    目前使用出现了两问题1、客户端莫名其妙的卡死,无响应,必须任务管理器强制停止才行。2、rtthread settings 添加软件包界面不显示,必须按shift+s才会出现,去掉某些软件包
    发表于 08-25 14:50

    如何在自己软件包添加CI集成工具

    下大家,如何在自己软件包添加CI集成工具,由于每个软件包的配置都不相同,要根据下面的步骤,灵活的配置你
    发表于 09-21 15:55

    想请教下RTThread中添加软件包有什么需要注意的地方吗?

    Studio中添加软件包,总是下载不成功,package下面没有任何,工程文件的package组下面也没有任何文件。想请教下,RTT
    发表于 11-04 10:35

    在rt-thread studio里添加软件包失败怎么解决?

    在rt-thread studio里使用软件包功能,添加软件包之后,点击保存,在项目栏测没有软件包添加
    发表于 02-13 14:14

    RT-Thread 软件包介绍

    详细的使用说明文档及示例代码。物联网相关的软件包物联网(IoT) 是 RT-Thread 当前非常重视环节,与其相关的软件包也非常庞大。你所开发的任何物联网应用,几乎都可以在这里找
    发表于 05-21 19:38 5530次阅读

    详细教程:在鸿蒙系统源码中添加第三方软件包

    文件夹中。 接下来,教大家如何添加自己软件包,名字为 a_myparty。 01 新建
    的头像 发表于 10-24 11:12 6918次阅读
    详细教程:在鸿蒙系统源码中<b class='flag-5'>添加</b>第三方<b class='flag-5'>软件包</b>

    什么是Linux软件包,如何管理它们

    现代类 Unix 操作系统都提供了集中的软件包管理机制,以帮助用户搜索、安装和管理软件。而软件通常以
    的头像 发表于 02-06 14:59 1388次阅读

    RT-Thread在线软件包改为本地软件包的方法

    RT-Thread 的软件包,使用时需要手动通过 ENV 工具 更新到 本地的 packages 目录,并且 packages 目录默认不参与 Git 工程管理,软件包多了,偶尔需要更改软件包本身的
    的头像 发表于 08-11 15:02 1136次阅读
    RT-Thread在线<b class='flag-5'>软件包</b>改为本地<b class='flag-5'>软件包</b>的方法

    使用pkgs-test工具对软件包进行qemu测试

    pkgs-test是可以在github actions上面检查软件包编译情况的工具。除了检查软件包的编译情况pkgs-test目前还添加
    的头像 发表于 09-25 16:19 707次阅读

    软件包0 error计划流程介绍

    可以在这一百软件包中认领自己感兴趣的软件包,不限于
    的头像 发表于 10-12 10:13 573次阅读
    <b class='flag-5'>软件包</b>0 error计划流程介绍

    RT-Thread中mymqtt软件包的使用方法

    在上篇文章 RT-Thread中Lan8720和lwip协议栈的使用的工程基础上添加mymqtt软件包。 使能mqtt example和mqtt test,保存,等待下载更新软件包
    的头像 发表于 10-13 10:44 913次阅读
    RT-Thread中mymqtt<b class='flag-5'>软件包</b>的使用方法