侵权投诉

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

2020-10-24 11:12 次阅读

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

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

后续我们如果需要往系统中添加、移植任何开源代码,都可以添加到这个文件夹中。

接下来,教大家如何添加一个自己的软件包,名字为 a_myparty。

01

新建一个文件夹 a_myparty

02

往文件中放置软件包源码

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

03

新建 BUILD.gn 文件

整个代码目录如下:

04

myparty.c 文件内容如下

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

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

05

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 (board_name != "hi3861v100") {         lib_extension = ".so"         deps = [             ":a_myparty_shared"         ]     } else {         deps = [             ":a_myparty_static"         ]     }     head_files = [         "//third_party/a_myparty"     ] } 

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

06

打开第 3 方软件包功能,使其参与编译

打开 vendorhisihi3861hi3861BUILD.gn 文件,在下图部分添加  "//third_party/a_myparty:a_myparty_static",别忘了分号。

07

使用

到了这里我们的第 3 方软件包就添加完成了,接下来我们要在 app 代码中使用它。

打开 applicationssamplewifi-iotappmy_first_appBUILD.gn 文件,没有的同学请自己先完成 hello world 入门例程先。

添加 "//third_party/a_myparty" 头文件路径,BUILD.gn 文件内容如下:

static_library("my_first_app") {     sources = [         "hello_world.c"     ]     include_dirs = [         "//utils/native/liteos/include",         "//third_party/a_myparty"     ] }  打开 hello_world.c 文件,内容如下:#include "ohos_init.h" #include "ohos_types.h" #include "stdio.h" //导入头文件 #include "myparty.h" void HelloWorld(void) {     printf("%s %d  ", __FILE__, __LINE__);     printf("[DEMO] Hello world. ");     //调用第3方软件包 的函数 myparty_test()     myparty_test(); } SYS_RUN(HelloWorld);

08

最后编译测试即可看到打印信息

[DEMO] Hello world. first myparty 

说明添加成功。

责任编辑:PSY

原文标题:如何往鸿蒙系统源码中添加第三方软件包

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

原文标题:如何往鸿蒙系统源码中添加第三方软件包

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

收藏 人收藏
分享:

评论

相关推荐

南向设备玩转HI3861----炫彩灯系列与蜂鸣音

蛟龙腾飞南向设备研学,部分公开日志展示讨论,有不足和错误的地方欢迎大家指正。...
发表于 11-26 20:37 8次 阅读
南向设备玩转HI3861----炫彩灯系列与蜂鸣音

emui11是鸿蒙系统吗_有什么区别

华为EMUI11并不是鸿蒙系统。在9月9日,谷歌宣布正式推出Android 11。从开发者预览版我们....
的头像 电子魔法师 发表于 11-26 16:18 464次 阅读
emui11是鸿蒙系统吗_有什么区别

[文章] HarmonyOS学习之一:鸿蒙HarmonyOS系统介绍

华为的鸿蒙系统优点是流畅度和大一统。这套系统主要是基于微内核的全场景分布式OS,可以按照需要进行扩展,由此来实现更为广泛...
发表于 11-26 15:26 0次 阅读
[文章] HarmonyOS学习之一:鸿蒙HarmonyOS系统介绍

三大逻辑揭示华为鸿蒙系统未来的面貌

华为曾在开发者大会2020上宣布,将于今年年底面向应用开发者推送鸿蒙OS 2.0 Beta版本。尽管....
的头像 如意 发表于 11-26 15:02 125次 阅读
三大逻辑揭示华为鸿蒙系统未来的面貌

win10里面运行npm install -g serialport报错

根据官方的开发文档里面提示,输入:npm install -g serialport。 但是电脑报错,请问是什么问题。 ...
发表于 11-26 13:44 15次 阅读
win10里面运行npm install -g serialport报错

HarmonyOS HiSpark AI Camera开发套件:第二篇:环境搭建

相关资料:鸿蒙官方文档:鸿蒙gitee:鸿蒙OS代码下载: de-0000001050769927 因为鸿蒙系统的开发方式是在Linux系统上面编译...
发表于 11-26 13:38 0次 阅读
HarmonyOS HiSpark AI Camera开发套件:第二篇:环境搭建

【HarmonyOS HiSpark AI Camera试用连载 】移植自研AE算法到AI Camera第一步在配套官方SDK中跑通

本来想一步到位直接在harmony这个系统中直接将自研的自动曝光算法移植上去,但是3516dv300作为一款没有测试过的海思平台怕有太多...
发表于 11-26 11:54 19次 阅读
【HarmonyOS HiSpark AI Camera试用连载 】移植自研AE算法到AI Camera第一步在配套官方SDK中跑通

HarmonyOS学习之四:OpenHarmony源码下载及构成简介

OpenHarmony是开放原子开源基金会(OpenAtom Foundation)旗下开源项目,定位是一款面向全场景的开源分布式操作系统,第一...
发表于 11-26 09:42 101次 阅读
HarmonyOS学习之四:OpenHarmony源码下载及构成简介

转:Hi3861制作的蜘蛛机器人模型

[media=x,500,375]https://mediafile.elecfans.com/2020/11/b08fe7e57ffd85bf5e67eae4fc421ab2.mp4[/media] 用的是Hi3861+pca9...
发表于 11-26 08:23 0次 阅读
转:Hi3861制作的蜘蛛机器人模型

鸿蒙内核源码分析(双循环链表篇) :内核最重要结构体

图解鸿蒙内核, 从 HarmonyOS 架构层视角整理成文, 并首创用生活场景讲故事的方式试图去解构内核,一窥究竟。 为何鸿蒙内核...
发表于 11-26 08:00 0次 阅读
鸿蒙内核源码分析(双循环链表篇) :内核最重要结构体

【HarmonyOS HiSpark AI Camera试用连载 】用Python自己做一个图形化烧写工具

对于HiTool烧写工具的使用和具体分析同伴们已经做了太多,我这里就不一一列举了。但是HiTool工具真的很好用吗?我觉得不太符...
发表于 11-25 18:29 45次 阅读
【HarmonyOS HiSpark AI Camera试用连载 】用Python自己做一个图形化烧写工具

逐行分析鸿蒙系统中的JS框架PDF资料

鸿蒙系统使用 javascript 开发 GUI 是一种类似于微信小程序、轻应用的模式。而这个 MV....
发表于 11-25 15:07 15次 阅读
逐行分析鸿蒙系统中的JS框架PDF资料

鸿蒙内核源码分析 :内核最重要结构体

为何鸿蒙内核源码分析系列开篇就说 LOS_DL_LIST ? 因为它在鸿蒙 LOS 内核中无处不在....
发表于 11-24 17:54 26次 阅读
鸿蒙内核源码分析 :内核最重要结构体

鸿蒙内核源码分析:进程是内核的资源管理单元

从系统的角度看,进程是资源管理单元。进程可以使用或等待CPU、使用内存空间等系统资源,并独立于其它进....
发表于 11-24 17:52 36次 阅读
鸿蒙内核源码分析:进程是内核的资源管理单元

鸿蒙内核源码分析:时钟是触发调度最大的源动力

时钟管理模块很简单,但却有内核最重要的代码段 OsTickHandler(),这是干嘛的,可以理解为....
发表于 11-24 17:50 22次 阅读
鸿蒙内核源码分析:时钟是触发调度最大的源动力

华为手机部否认Mate40系列可优先升级鸿蒙系统

11 月 24 日消息 今天早些时候新浪科技报道称,华为软件部副总裁毛玉敏预告,12 月 16 日鸿....
的头像 璟琰乀 发表于 11-24 16:30 398次 阅读
华为手机部否认Mate40系列可优先升级鸿蒙系统

华为否认12月Mate40系列升级鸿蒙系统

今年9月份的开发者大会上,华为推出了鸿蒙2.0系统,并表示会用于智能手机。日前华为软件部副总表示12....
的头像 如意 发表于 11-24 16:28 6244次 阅读
华为否认12月Mate40系列升级鸿蒙系统

华为手机部回应Mate40优先升级鸿蒙OS系统:我们没说过Mate40下月升级

IT之家 11 月 24 日消息 今天早些时候新浪科技报道称,华为软件部副总裁毛玉敏预告,12 月 ....
的头像 工程师邓生 发表于 11-24 16:28 590次 阅读
华为手机部回应Mate40优先升级鸿蒙OS系统:我们没说过Mate40下月升级

华为商用PC现身官网,AMD与顶级CPU搭配,支持手机电脑互联

华为电脑B系列在今日突然迎来了新成员——MateStation B515正式在华为官网上架。今年8月,华为在M
的头像 鸿蒙视界 发表于 11-24 14:48 377次 阅读
华为商用PC现身官网,AMD与顶级CPU搭配,支持手机电脑互联

华为鸿蒙系统手机将在12月16日发布

对于大家都很期待的鸿蒙OS手机测试版,终于要来了。据新浪科技报道称,华为软件部副总裁毛玉敏预告,12....
的头像 如意 发表于 11-24 11:12 751次 阅读
华为鸿蒙系统手机将在12月16日发布

HarmonyOS与Linux的融合 在Linux系统设置共享文件夹

由于目前HarmonyOS源码只支持在Linux系统中进行编译,所以需要Linux环境下的工程目录映....
发表于 11-23 16:37 303次 阅读
HarmonyOS与Linux的融合  在Linux系统设置共享文件夹

鸿蒙内核源码分析:task是内核调度的单元

从系统的角度看,线程是竞争系统资源的最小运行单元。线程可以使用或等待CPU、使用内存空间等系统资源,....
发表于 11-23 15:51 48次 阅读
鸿蒙内核源码分析:task是内核调度的单元

鸿蒙内核源码分析:进程和Task的就绪队列对调度的作用

鸿蒙内核代码中有两个源文件是关于队列的,一个是用于调度的队列,另一个是用于线程间通讯的IPC队列。 ....
发表于 11-23 15:48 39次 阅读
鸿蒙内核源码分析:进程和Task的就绪队列对调度的作用

鸿蒙内核源码分析:手眼通天的虚拟内存

这张图是第一张图的局部用户空间放大图。里面放的是奴才的私人用品,数据,task运行栈区动态分配内存的....
发表于 11-23 11:50 33次 阅读
鸿蒙内核源码分析:手眼通天的虚拟内存

鸿蒙内核源码分析:内存有哪些分配方式

内存部分占了整个kernel代码量近30%,代码多实现复杂,而且内存部分还分了两个文件夹memvm大....
发表于 11-23 11:48 31次 阅读
鸿蒙内核源码分析:内存有哪些分配方式

用VMWare虚拟机编译HarmonyOS 的Linux环境搭建

顺利拿到板子,开搞,第一步当然是环境搭建。论坛的大大们早就为我们准备好了详细的攻略。 笔者并没有一台....
的头像 电子发烧友网工程师 发表于 11-23 09:28 504次 阅读
用VMWare虚拟机编译HarmonyOS 的Linux环境搭建

鸿蒙系统有什么样的意义

2020 年 9 月 10 日,在华为开发者大会上,华为 Harmony OS(鸿蒙操作系统)2.0....
的头像 电子发烧友网工程师 发表于 11-20 09:37 580次 阅读
鸿蒙系统有什么样的意义

win10的WLS编译环境搭建

老实说,万事开头难,所以编译环境尤为重要。 01 为什么要用win10的WLS子系统? - 鸿蒙编译....
的头像 电子发烧友网工程师 发表于 11-20 09:17 125次 阅读
win10的WLS编译环境搭建

移植鸿蒙系统到STM32L476RG_NUCLEO开发板的建议

https://gitee.com/walker2048/hmos_iot 移植鸿蒙的建议: 步骤一....
的头像 电子发烧友网工程师 发表于 11-20 09:14 169次 阅读
移植鸿蒙系统到STM32L476RG_NUCLEO开发板的建议

首批升级鸿蒙OS名单:共有42款机型

今年八月,华为首次对外界发布了自研系统鸿蒙OS;九月,华为鸿蒙OS 2.0版本发布,并宣称年底推出手....
的头像 Les 发表于 11-19 18:29 2811次 阅读
首批升级鸿蒙OS名单:共有42款机型

鸿蒙内核内存实现涉及哪些汇编代码

ARM处理器使用协处理器15(CP15)的寄存器来控制cache、TCM和存储器管理。CP15的寄存....
发表于 11-19 15:34 42次 阅读
鸿蒙内核内存实现涉及哪些汇编代码

鸿蒙内核中虚拟地址与物理地址之间是如何映射的

虚拟地址(VA): 就是线性地址 鸿蒙内存部分全是VA的身影 是由编译器和链接器在定位程序时分配的,....
发表于 11-19 14:45 27次 阅读
鸿蒙内核中虚拟地址与物理地址之间是如何映射的

给 HarmonyOS 源码逐行加上中文注解

每个码农职业生涯都应精读一遍内核源码. 鸿蒙内核源码就是很好的精读项目.一旦熟悉内核代码的实现将迅速....
发表于 11-19 14:40 92次 阅读
给 HarmonyOS 源码逐行加上中文注解

解读鸿蒙源码逐行注释分析免费下载

以上两图是笔者阅读完鸿蒙内核源码内存模块所绘制,给鸿蒙内核源码逐行加上中文注释 【 Gitee仓 |....
发表于 11-19 14:37 26次 阅读
解读鸿蒙源码逐行注释分析免费下载

关于DevEco Studio 2.0,你想知道的都在这里!

1、如何获取DevEco Studio 2.0?(版本计划 + 获取方式) 现在起,可在Harmon....
的头像 电子发烧友网工程师 发表于 11-19 09:36 166次 阅读
关于DevEco Studio 2.0,你想知道的都在这里!

鸿蒙系统开发之实现LED灯闪烁免费下载

先在./applications/sample/wifi-iot/app 路径下新建一个目录(或一套....
发表于 11-18 17:56 41次 阅读
鸿蒙系统开发之实现LED灯闪烁免费下载

小米将研发全新物联网操作系统Vela,鸿蒙系统又多了新的伙伴

自从谷歌禁止华为使用GMS 开始,华为鸿蒙系统已经发展两年多。最近,鸿蒙系统又多了新的伙伴,在小米开....
的头像 Les 发表于 11-17 09:35 515次 阅读
小米将研发全新物联网操作系统Vela,鸿蒙系统又多了新的伙伴

为什么国产操作系统还是无法冲出学术和技术的象牙塔

说到国产操作系统,国人都是一声叹息。但有多少人认真想过,搞了几十年,为什么国产操作系统还是不行:无法....
的头像 Les 发表于 11-16 16:28 399次 阅读
为什么国产操作系统还是无法冲出学术和技术的象牙塔

荣耀V40系列放料:高配麒麟9000,将搭载鸿蒙2.0

荣耀系列手机的发布节奏有一定程度的变动,例如荣耀Magic3发布推迟,但是根据消息称,荣耀V40还会照常发布。
的头像 鸿蒙视界 发表于 11-16 13:46 464次 阅读
荣耀V40系列放料:高配麒麟9000,将搭载鸿蒙2.0

鸿蒙技术专题:嵌入式软件最能体现开发者硬实力

本期为鸿蒙技术专题,给大家分享关于鸿蒙系统最新的学习经验、答疑解惑、在线技术直播以及开发资料汇总。 ....
的头像 电子发烧友网 发表于 11-14 10:32 359次 阅读
鸿蒙技术专题:嵌入式软件最能体现开发者硬实力

vivo全新OriginOS系统到底怎么样

事实上,vivo推出新系统并不是一时兴起,早在去年的时候,它就制定了相应的计划,OriginOS便是....
的头像 我快闭嘴 发表于 11-13 15:39 1122次 阅读
vivo全新OriginOS系统到底怎么样

华为鸿蒙系统将首次用于智能手机

重要信息 下个月,华为鸿蒙系统(HarmonyOS)将首次用于智能手机! 华为消费者业务软件部总裁王....
的头像 5G 发表于 11-13 12:00 1538次 阅读
华为鸿蒙系统将首次用于智能手机

华为启动突围Plan B,鸿蒙系统装上车

尽管拜登击败了特朗普即将出任美国下一任总统,外界认为新一届美国政府对中国科技企业的打压态势并不会因为....
的头像 如意 发表于 11-13 11:51 469次 阅读
华为启动突围Plan B,鸿蒙系统装上车

美的搭载鸿蒙系统的家电正式上市,引领智联家电潮流

双十一当天早上,美的集团官方微博正式宣布旗下搭载华为鸿蒙系统的智能家居产品上架,官方的宣传语为“碰见你,秒启懂
的头像 鸿蒙视界 发表于 11-12 14:30 493次 阅读
美的搭载鸿蒙系统的家电正式上市,引领智联家电潮流

美的产品上市,只需“碰一碰”体验鸿蒙OS生态

在9月的HDC 2020开发者大会上,华为正式推出鸿蒙2.0系统,该系统具备通过跨设备协同、大小屏互....
的头像 如意 发表于 11-11 14:56 233次 阅读
美的产品上市,只需“碰一碰”体验鸿蒙OS生态

美的官微消息:搭载 HarmonyOS 的美的产品今天上市

据美的官微消息,搭载 HarmonyOS 的美的产品今天双十一上市,据悉,美的是首批支持 Harmo....
的头像 工程师邓生 发表于 11-11 12:06 446次 阅读
美的官微消息:搭载 HarmonyOS 的美的产品今天上市

如何实现鸿蒙系统编译、烧录不跨平台的?

鸿蒙目前的弱点,Windows 下不能编译,Linux 下又没有烧写工具。虽然 vscode有个 D....
的头像 电子发烧友网工程师 发表于 11-11 09:59 188次 阅读
如何实现鸿蒙系统编译、烧录不跨平台的?

荣耀手表 GS Pro首先升级华为鸿蒙 2.0内核能力

IT之家11月10日消息 数码博主 @长安数码君 今日爆料称,第一个升级华为鸿蒙 2.0 相关能力的....
的头像 工程师邓生 发表于 11-10 16:28 862次 阅读
荣耀手表 GS Pro首先升级华为鸿蒙 2.0内核能力

12月发布鸿蒙系统测试版,网友:支持并期待更新

华为鸿蒙OS系统最新进展, 网友们热评推荐:不管好不好用,我都用。支持坚决支持,绝对支持。做系统需要狠劲,考验
的头像 鸿蒙视界 发表于 11-10 14:38 560次 阅读
12月发布鸿蒙系统测试版,网友:支持并期待更新

失去麒麟芯片王牌的华为手机,手里还有什么筹码?

昨日晚间,据数码博主@长安数码君爆料——华为消费者业务软件部总裁王成录表示:华为鸿蒙OS 2.0手机....
的头像 如意 发表于 11-10 11:56 759次 阅读
失去麒麟芯片王牌的华为手机,手里还有什么筹码?

华为关注oppo魅族官微,暗示准备加入适配鸿蒙OS机型?

近日华为消费者业务软件部总裁王成录宣布,手机版鸿蒙OS 适配工作进展顺利,将按照计划在今年12月发布。王成录表
的头像 鸿蒙视界 发表于 11-09 14:34 514次 阅读
华为关注oppo魅族官微,暗示准备加入适配鸿蒙OS机型?

鸿蒙OS系统Beta测试版本或将来临

11月9日消息,日前,据数码博主@长安数码君爆料,华为鸿蒙OS 2.0手机系统已经暂定在12月18日....
的头像 我快闭嘴 发表于 11-09 13:46 461次 阅读
鸿蒙OS系统Beta测试版本或将来临