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

871 篇文章 15 订阅
694 篇文章 18 订阅

10.1 添加第一个a_myparty软件包

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

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

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

1. 新建一个文件夹a_myparty

2. 往文件中放置软件包源码
这里我放在的是 myparty.c和myparty.h文件

3. 新建BUILD.gn文件
整个代码目录如下:

4. myparty.c文件内容如下:
其实,我这个只是为了演示的,所以里面代码没什么作用

#include <stdio.h>

void myparty_test(void)
{
    printf("first myparty \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",
]

#这里是静态链接,类似于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放软件包编译到我们固件中。

10.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 <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"

#include "myparty.h"

void myparty_demo(void)
{
    myparty_test();
    printf("___________>>>>>>>>>>>>>>>>>>>> [DEMO] Hello world.\n");
}
SYS_RUN(myparty_demo);

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

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值