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

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

3天内不再提示

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

电子工程师 来源:HarmonyOS技术社区 作者:HarmonyOS技术社区 2020-10-24 11:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

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

01

新建一个文件夹 a_myparty

02

往文件中放置软件包源码

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

03

新建 BUILD.gn 文件

整个代码目录如下:

04

myparty.c 文件内容如下

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

#include voidmyparty_test(void) { printf("firstmyparty "); }

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" voidHelloWorld(void) { printf("%s%d ",__FILE__,__LINE__); printf("[DEMO]Helloworld. "); //调用第3方软件包的函数myparty_test() myparty_test(); } SYS_RUN(HelloWorld);

08

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

[DEMO]Helloworld. firstmyparty

说明添加成功。

责任编辑:PSY

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

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

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

    关注

    8

    文章

    689

    浏览量

    31514
  • 软件包
    +关注

    关注

    0

    文章

    117

    浏览量

    12177
  • 鸿蒙系统
    +关注

    关注

    183

    文章

    2642

    浏览量

    70127

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    倾斜仪是否支持接入第三方自动化采集系统?

    倾斜仪作为工程监测的重要设备,其系统集成能力直接影响实际使用效果。针对是否支持第三方自动化采集系统的问题,答案是肯定的。YS系列倾斜仪设计阶段即考虑了
    的头像 发表于 03-25 17:25 399次阅读
    倾斜仪是否支持接入<b class='flag-5'>第三方</b>自动化采集<b class='flag-5'>系统</b>?

    为什么MES企业要跟第三方机构合作设备数据采集?

    综上考虑,多数MES企业都不直接承接设备数据采集业务,而是选择和第三方机构合作。毕竟第三方机构长期耕耘这一领域,拥有成熟的产品体系、完善的技术路线以及专业的现场施工团队,能够快速应对各类现场难题,将
    的头像 发表于 03-19 15:03 871次阅读
    为什么MES企业要跟<b class='flag-5'>第三方</b>机构合作设备数据采集?

    苹果17可以无线充电吗?第三方配件怎么选?

    iPhone 17无线充电提升车载体验,支持Qi2.2,磁吸强、散热好,第三方配件需认准MFM认证。
    的头像 发表于 03-19 08:17 867次阅读
    苹果17可以无线充电吗?<b class='flag-5'>第三方</b>配件怎么选?

    CW32W031调制频率的话有第三方软件工具么?

    请问,CW32W031调制频率的话,有第三方软件工具么?仿真软件也行
    发表于 01-19 06:54

    DEKRA德凯获得沃尔沃汽车第三方实验室认可资质

    近日,DEKRA德凯上海实验室成功通过沃尔沃汽车材料工程中心的严格评审,被正式列入其认可的第三方实验室名单。
    的头像 发表于 10-16 10:27 895次阅读

    SEGGER Ozone调试器支持第三方调试工具

    SEGGER强大的Ozone调试器和性能分析器,长期以来一直深受J-Link和J-Trace用户的信任,现在可以支持第三方调试工具了。
    的头像 发表于 09-29 11:45 1424次阅读

    ENV添加micropython软件包出现异常的原因?

    的python27.dll和platformenv_releasedenvtoolsPython27换一下。结果还是错误?。 没办法了,就行下一步添加micropython软件包。按照教程走出现了这个东西我直接
    发表于 09-12 08:06

    电子测试行业第三方检测机构如何解决平台灵活度低,维护困难等痛点问题?

    竞争激烈的市场环境第三方检测机构面临着诸多挑战,尤其是来料测试环节。某权威第三方检测机构就曾深陷困境,他们一
    的头像 发表于 08-06 17:07 983次阅读
    电子测试行业<b class='flag-5'>中</b>的<b class='flag-5'>第三方</b>检测机构如何解决平台灵活度低,维护困难等痛点问题?

    如何集成第三方支付API到电商网站

    电商网站,集成第三方支付API是确保交易安全、提升用户体验的关键步骤。本文将逐步指导您完成整个流程,从选择支付提供商到上线后的监控。文章结构清晰,包含代码示例和实用建议,帮助您高效实现支付
    的头像 发表于 07-16 10:35 739次阅读
    如何集成<b class='flag-5'>第三方</b>支付API到电商网站

    天合跟踪获得DNV第三方风洞测试审查报告

    近日, 天合跟踪获得DNV颁发的中国支架行业首张风洞实验第三方审查报告。该风洞报告由天合跟踪与同济大学合作,针对开拓者1P跟踪支架进行了全新的刚性模型测压试验和先进动力学分析研究,并由DNV进行独立
    的头像 发表于 07-08 17:35 1103次阅读

    使用 Claroty SRA 优化第三方 OT 远程访问

    第三方,如原始设备制造商 (OEM) 技术员和维护承包商,是确保 OT 环境可用性、完整性和安全性的关键。负责服务 OT 资产的第三方经常远程工作。这意味着,他们会通过无数广泛使用的解决方案远程连接
    的头像 发表于 06-17 16:11 894次阅读
    使用 Claroty SRA 优化<b class='flag-5'>第三方</b> OT 远程访问

    第三方工业互联网平台有哪些

    第三方工业互联网平台有哪些
    的头像 发表于 06-14 15:48 1477次阅读

    钛和集团荣获零跑汽车第三方实验室资质认可

    近期,钛和集团顺利通过了浙江零跑科技股份有限公司(以下简称“零跑汽车”)对第三方实验室的能力验证及资质审核,助力零跑汽车实现“成为值得尊敬的世界级智能电动车企”的品牌愿景。
    的头像 发表于 06-13 17:00 1534次阅读

    钛和集团荣获吉利汽车第三方实验室资质认可

    近期,钛和集团汽车事业部顺利通过了浙江吉利控股集团有限公司(以下简称“吉利汽车”)对外部实验室的能力验证及资质审核,并获得了第三方实验室认可证书,助力吉利汽车实现“让世界充满吉利”的品牌愿景。
    的头像 发表于 06-10 15:03 1408次阅读

    SGS荣获比亚迪乘用车第三方实验室资质认可证书

    近日,国际公认的测试、检验和认证机构SGS(以下简称:SGS)位于重庆的标瑞新能源实验室(以下简称:SGS-CEC)荣获比亚迪乘用车实验室认可委员会(以下简称:比亚迪)颁发的“乘用车第三方实验室资质认可证书”。
    的头像 发表于 05-20 15:04 1236次阅读