当前位置: 首页 > 科技观察

OpenHarmony轻量级系统开发编写自己的软件包

时间:2023-03-13 08:43:58 科技观察

更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com摘要:本文简单介绍Hi3861WiFi操作,如何连接热点,查看IP,ping服务器等。适用人群:适用于润和Hi3861开发板所有代码库:https://gitee.com/qidiyun/hihope-3861-smart-home-kit10。1添加第一个a_myparty软件包打开鸿蒙系统源码,可以看到有这么一个文件夹:third_party。它包含第三方代码。点击打开,可以看到有很多第三方代码:如果以后需要在系统中添加或移植任何开源代码,可以添加到这个文件夹中。接下来教大家如何添加自己的名为a_myparty的软件包。1.新建一个文件夹a_myparty2.把软件包源码放在文件里我这里放myparty.c和myparty.h文件3.新建一个BUILD.gn文件整个代码目录如下:4.myparty.c文件内容如下:其实这只是为了演示,所以里面的代码没有作用#includevoidmyparty_test(void){printf("firstmyparty\r\n");}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",]#这是一个静态链接,类似于linu的.a文件xsystemlite_library("a_myparty_static"){target_type="static_library"sources=a_myparty_sourcespublic_configs=[":a_myparty_config"]}#这个是动态加载的,类似于linux系统的.so文件lite_library("a_myparty_shared"){target_type="shared_library"sources=a_myparty_sourcespublic_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"]}到这里基本写完了,最后要把这个第三个包编译成我们的固件。10.2如何使用a_myparty软件包我们在app中新建一个myparty_demo文件夹,目录如下:BUILD.gn内容如下:static_library("myparty_demo"){sources=["myparty_demo.c"]#注意需要添加a_myparty的header添加文件路径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"voidmyparty_demo(void){myparty_test();printf("____________>>>>>>>>>>>>>>>>>>>>[演示]你好世界。\n");}SYS_RUN(myparty_demo);编译烧录后可以看到myparty_test的打印信息:想了解更多请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com