OpenHarmony增加应用程序到现成子系统的部件中

OpenHarmony Docker移植实践 从操作系统诞生之日起,虚拟化技术就不断的演进与发展,结合目前云原生的发展态势,容器无疑是其中的重要一环。Docker是一个开源的软件项目,可以在Linux操作系统上提供一层额外的抽象,让用户程序部署在一个相对隔离的运行环境,并提供自动管理机制。需要额外指出的是,Docker并不等于容器(containers),Docker只是容器的一种,其他种类的容器还有Kata container,Rocket container等。 阅读详情
AI摘要

本文介绍了在OpenHarmony系统中简单增加代码到现成子系统部件的实现过程。先确认产品配置中使用的子系统与部件,如Hi3516的ipcamera_hispark_taurus,选择部件添加代码;接着自定义程序,创建源文件;再进行编译配置;最后重新编译系统,更新烧录文件并执行程序。

如果只是想简单的增加代码到OpenHarmony系统,可以添加到现成子系统的部件中。以下是实现过程:
1. 确认产品配置中使用的子系统与部件
如Hi3516的ipcamera_hispark_taurus:
在这里插入图片描述
图中内容表示已使用"application" 子系统,以及它的"camera_sample_app"、"camera_screensaver_app"部件。也就说可以将代码添加到"application"子系统的任意一个部件中,这里选择"camera_sample_app"部件。
2. 自定义程序
在/opt/Ohos4/OpenHarmony/applications/sample/camera目录下创建mytest文件夹,并在mytest目录下创将myhello.c源文件。源文件内容如下:

#include <stdio.h>
#include <unistd.h>
#include <pthread.h>

void *threadFunc(void *arg);

int main(void)
{
        pthread_t ptid;
        int n = 0;

        printf("hello pthread test\n");
        pthread_create(&ptid, NULL, threadFunc, NULL);

        while (1)
        {
                printf("in main thread : %d\n", n++);
                sleep(5);
        }
        return 0;
}

void *threadFunc(void *arg)
{
        int n = 0;

        while (1)
        {
                printf("in sub thread : %d\n", n++);
                sleep(3);
        }
}

3. 编译配置
在mytest目录下创建BUILD.gn, 并输入内容如下:

import ("//build/ohos.gni")
ohos_executable("mytest") {
  sources = ["myhello.c"]
  include_dirs = []
  part_name = "camera_sample_app"
}

然后修改OpenHarmony/applications/sample/camera/bundle.json配置文件,增加并修改:

        "build": {
            "sub_component": [
                "//applications/sample/camera/launcher:launcher_hap",
                "//applications/sample/camera/cameraApp:cameraApp_hap",
                "//applications/sample/camera/setting:setting_hap",
                "//applications/sample/camera/gallery:gallery_hap",
                "//applications/sample/camera/media:media_sample", #modify
                "//applications/sample/camera/mytest:mytest"       #add
            ],
            "inner_kits": [],
            "test": []
        }

4. 执行
重新编译OpenHarmony系统后,如果开发板已烧录过系统镜像,则可以只再更新烧录rootfs_vfat.img文件即可,因自定义的程序是属于用户态空间。烧录完成后,在终端进入bin目录下执行mytest,输出信息:

在这里插入图片描述

【鸿蒙南向开发】手把手教会OpenHarmony-4.1-Release的small系统的rootfs制作过程 总结一句话# 如果是jffs2格式,则执行下面命令# 如果是vfat格式,则执行下面命令# 如果是ext4格式,则执行下面命令这份鸿蒙(HarmonyOS NEXT)文档包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。 阅读详情

相关推荐

如何向OpenHarmony中编译构建自己的子系统、部件和模块

weixin_40010764的博客 2518

一键教会OpenHarmony-4.1-Release的small系统的rootfs制作过程

wenfei11471的博客 1333

OpenHarmony构建系统-GN与子系统、部件、模块理论与实践

..# 注:以上...}代表内容放在文件最后一级}下subsystem_config.json文件此处的"subsystem": "mycomptest"为bundle.json中的"subsystem": "mycomptest...注:以上...]}代表以上内容放在文件中最后一级数组中config.json文件中此处的"subsystem":"mycomptest"为subsystem_config.json文件中的"name": "mycomptestcompdemo1。

程序课代表的博客 1928

【入门到实战】OpenHarmony南向子系统开发:启动流程

启动恢复子系统上下文.......

Androidbye的博客 1110

鸿蒙OpenHarmony【部件编译构建规范】子系统

编译构建是部件化设计落地的切入点,一个优秀的部件在编译态应该具备可维护、可移植、低耦合的特征。本规范用于引导部件开发人员编写符合部件化设计的编译脚本,使得部件在编译态依赖合理、可配置、可复用、可裁剪。

zxc95279527q的博客 930

鸿蒙南向设备开发(OpenHarmony)子系统部件配置规则

通过build仓下的subsystem_config.json可以查看所有子系统的配置规则。

WEZC156465的博客 1222

OpenHarmony模块化编译

OpenHarmony 4.0 hb安装配置和常见模块编译

mart!nhu的博客 5170

鸿蒙OpenHarmony【编译构建】子系统

OpenHarmony编译子系统是以GN和Ninja构建为基座,对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统

zxc95279527q的博客 1575

OpenHarmony自定义子系统、部件与模块

OpenHarmony自定义子系统、部件与模块

jklinux的博客 1762

OpenHarmony 源码构建体系--跨部件调用

OpenHarmony使用BUILD.gn 和bundle.json体现源码构建编译关系,本文举例说明同一子系统不同部件之间的动态调用和不同子系统之间的动态库调用。以更进一步数据OpenHarmony 源码的结构和编译体系。

navy2015_163的博客 1741

OpenHarmony实战:轻量级系统之子系统移植概述

若想使用OpenHarmony系统的能力,需要对相应子系统进行适配。

m0_64420071的博客 2031

OpenHarmony子系统开发 - 部件配置规则

将部件添加到产品配置中。在产品的配置中添加部件,产品对应的配置文件://vendor/{product_company}/{product-name}/config.json。示例部件partA的配置需要添加到一个子系统中,本次示例将添加到subsystem_examples子系统中(subsystem_examples子系统定义在test/examples/目录)。部件配置中需要配置部件的名称、源码路径、功能简介、是否必选、编译目标、RAM、ROM、编译输出、已适配的内核、可配置的特性和依赖等属性定义。

__Benco的博客 1101

OpenHarmony 南向开发-移植子系统二

此库中提供了“mbedtls_platform_entropy_poll”、“mbedtls_hardclock_poll”、“mbedtls_havege_poll”、“mbedtls_hardware_poll”等几种产生随机数的方式。在“vendor/MyVendorCompany/MyProduct/config.json”文件中,通常将配置“ohos_board_adapter_dir”配置为 “//vendor/MyVendorCompany/MyProduct/adapter”。

zy178722的博客 1730

OpenHarmony添加自定义的子系统、部件、模块

这里我们将OpenHarmony的两个例子添加到源码中并使其编译到系统中,这里有一点需要注意的是不可以将自定义的子系统放到其他已经定义的子系统目录下,vendor下的product文件夹也被认为成一个子系统,比如/就作为product_hihope子系统存在的,其定义在/

weixin_44205232的博客 4397

AI协议助手:法律文本解析与智能问答技术解析

自然语言处理(NLP)技术在法律文本解析中展现出巨大潜力,通过BERT等预训练模型实现条款分类与语义理解。结合OCR与知识图谱技术,AI协议助手能快速提取合同核心条款,并以问答形式解释法律术语,显著提升商务场景的决策效率。测试数据显示,该系统对NDA协议的识别准确率达92%,响应时间仅1.2秒,特别适用于人力资源竞业协议、云服务SLA评估等场景。随着RAG架构与法律术语向量库的应用,AI+法律正推动合同审核成本下降67%,未来将在跨境合规、智能谈判等方向持续演进。

weixin_29053577的博客 128

4090显卡实测:PointPillars在KITTI数据集上的3D目标检测复现全流程(附避坑指南)

本文详细记录了在NVIDIA RTX 4090显卡上,从环境搭建、数据处理到模型训练与评估,完整复现PointPillars算法在KITTI数据集上进行3D目标检测的全流程。重点分享了版本配置、数据预处理、性能调优及常见问题的避坑指南,帮助开发者高效利用硬件资源,成功跑通并理解这一经典3D检测项目。

purple的博客 914

​OpenHarmony子系统开发 - 部件编译构建规范​

编译构建是部件化设计落地的切入点,一个优秀的部件在编译态应该具备可维护、可移植、低耦合的特征。本规范用于引导部件开发人员编写符合部件化设计的编译脚本,使得部件在编译态依赖合理、可配置、可复用、可裁剪。

__Benco的博客 1375

手把手教你用GEM-2多频电磁仪找地下管道(附真实数据图)

本文详细解析了使用GEM-2多频电磁仪精准定位地下管线的全流程,包括设备调试、频率选择、现场扫描技巧及数据解读。通过真实案例展示了如何应对复杂干扰环境,提升管线检测效率与准确性,特别适合市政工程和地下管线普查。

weixin_42565652的博客 396

【OpenHarmony】标准系统 新增子系统/部件

标准系统新增部件

Kemin123的博客 1410

BFD+OSPF+FRR:构建高可用网络的核心铁三角

摘要:VRRP、OSPF、BFD和FRR协同实现网络高可用。VRRP负责网关冗余,OSPF确保路由可达,BFD提供毫秒级故障检测,FRR实现快速路径切换。故障时,BFD立即检测并通知OSPF,FRR在OSPF收敛前切换流量,VRRP完成网关切换(如需)。BFD采用异步模式动态建立,效率最高。该机制确保业务流量无缝切换,提升网络可靠性。

A516988的博客 753

高性能网站设计之缓存更新的套路

看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。 我不知道为什么这么多人用的都是这

代码技巧 1万+

鸿蒙OpenHarmony【部件配置规则】子系统

部件的bundle.json放在部件源码的根目录下。以泛sensor子系统的sensor服务部件为例,

zxc95279527q的博客 1197

DSPF28335:从零到一,实战GPIO与外部中断的嵌入式系统交互设计

本文以德州仪器DSPF28335芯片为例,详细讲解了嵌入式系统中GPIO与外部中断(EXTI)的实战配置方法。通过一个完整的按键控制LED并触发ADC采样的项目,深入剖析了GPIO寄存器配置、三级中断机制(外设-PIE-CPU)以及中断服务函数编写的核心要点,帮助开发者掌握嵌入式交互设计的基石,并提供了关键的避坑指南与调试清单。

weixin_29169899的博客 115
上一篇: OpenHarmony自定义子系统、部件与模块
下一篇: OpenHarmony-简单的HDF驱动
jklinux
博客等级 码龄10年 1060粉丝 276原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值