- 博客(205)
- 收藏
- 关注
原创 OpenHarmony 4.0 Beta1发布,邀您体验
3. 重构沉浸式实现方式,优化应用打开、退出、跳转下的动画效果:之前版本,应用打开时全屏应用窗口大小默认不包含状态栏和导航栏的区域,除非应用调用沉浸式接口(通过setWindowLayoutFullScreen或者setSystemBarEnable)。新版本上,无论是否设置沉浸式显示,全屏显示的应用窗口大小都包含状态栏和导航栏的区域,而非沉浸式应用的状态栏、导航栏避让会通过ArkUI限制应用显示区域完成。4. 支持原子化服务的分享,应用开发者可以使用UIAbility组件提供的方法,设置要分享的数据。
2023-06-08 11:35:17
236
原创 OpenHarmony 3.2 Release新特性解读之驱动HCS
OpenHarmony 3.2 Release版本驱动框架在原来的HDF架构基础上进行了细化,新增HCS宏式解析,使得系统ROM空间得到进一步的节省,增加参数调用效率;HCS经过HC-GEN编译生成HCB文件,HDF驱动框架中的HCS Parser模块会从HCB文件中重建配置树,HDF驱动模块使用HCS Parser提供的配置读取接口获取配置内容。HCS宏式解析功能的应用,极大的方便了开发者对于不同设备,相同驱动的移植适配工作,使得多场景、多功能Mini类系统设备的应用成为现实。
2023-05-31 10:41:26
360
1
原创 OpenHarmony创新赛 | 赛事宣讲会日期重磅官宣!为你带来超详尽的赛事攻略
OpenAtom OpenHarmony(简称:"OpenHarmony")创新赛?有哪些赛题可以报名参赛?现在,赛事宣讲会来啦~5月31日,14:30--16:30,关注OpenHarmony公众号直播,带你了解超详尽的创新赛报名攻略!最近接到很多小伙伴私信提问,比如如何报名。
2023-05-25 10:13:43
30
1
原创 OpenHarmony支持HDMI接口声卡适配说明
card_controller配置项根据声卡包含的驱动服务进行配置,不同声卡包含的驱动服务可能不同,HDMI声卡包含platform、dai和codec所以需要配置codecName codec驱动服务名称,platformName platform驱动服务名称、cpuDaiName platform侧dai服务名称、codecDaiName codec侧驱动服务名称。hwInfo配置声卡的信息,包括声卡播放和录音支持的格式、采样率范围、通道范围、缓存buffer最大值、每个周期的字节范围、周期的范围。
2023-05-23 11:34:29
325
1
原创 OpenHarmony社区运营报告(2023年4月)
媒体、电话、通信、Web、安全、调测能力进一步提升;4月19日,开放原子开源大赛OpenHarmony创新赛发布。本次大赛由开放原子开源基金会发起,OpenHarmony项目群工作委员会、鸿湖万联及润开鸿承办,华为、深开鸿、开鸿智谷、诚迈科技、九联科技协办,合作单位包括万里红,新东方智慧教育,是开放原子开源大赛下设的创新赛道,面向广大开发者设OpenHarmony应用创新赛题以及各行业赛题,聚焦OpenHarmony应用开发技术,打造竞技交流赛事,旨在提高开发者的动手实践能力以及运用新技术的创新创造能力。
2023-05-22 10:30:48
427
原创 OpenHarmony Docker移植实践
需要额外指出的是,Docker并不等于容器(containers),Docker只是容器的一种,其他种类的容器还有Kata container,Rocket container等。工具可以通过OpenHarmony官方的每日构建dailybuilds[7] 或发布的SDK[8] 中获得,根据使用的系统平台到相应的toolchains目录下提取。Docker是一个开源的软件项目,可以在Linux操作系统上提供一层额外的抽象,让用户程序部署在一个相对隔离的运行环境,并提供自动管理机制。
2023-05-18 10:13:59
353
1
原创 基于ArkUI框架开发——图片模糊处理的实现
我们根据像素点的r、g、b值,得到M点的像素点值,就这样,一个一个像素点的操作,中间点相当于失去视觉上的焦点,整个图片就产生模糊的效果。但这样一边倒的方式,在模糊的效果上,达不到需求的,所以,我们就需要根据这个模糊的本质概念,去想想,加一些东西或者更改取平均值的规则,完成我们想要的效果。这样我们在计算图片的焦点像素值时,将该点当作中心点,当作1的权重,其他周围的点,按照该正态分布的位置,去分配它的权重,这样我们就可以根据该正态分布函数及其各个点的像素ARGB值,算出经过正态分布之后的像素ARGB值。
2023-05-05 11:48:23
430
1
原创 开启新时代,承接新使命,开放原子开源大赛OpenHarmony创新赛正式启航!
OpenHarmony创新赛”是开放原子全球开源大赛下开设的创新赛道,面向企业、个人、高校师生等广大开发者,聚焦OpenHarmony应用开发技术,打造竞技交流赛事,旨在提高开发者的动手实践能力以及运用新技术的创新创造能力。通过本次大赛,期望达到以赛促用、以赛促教、以赛促学、以赛促练、以赛促创的效果,开发者通过学习OpenHarmony,开发出具有创新性、实用性的开源应用软件及全场景OpenHarmony解决方案,促进万物互联产业的繁荣发展。开放原子开源大赛OpenHarmony创新赛,正式启动啦!
2023-04-23 10:49:19
107
原创 成长计划知识赋能 | 第十期:DAYU200开发入门秒Get
知识赋能直播第十期特推出DAYU200开发入门的系列直播课程,资深北向技术专家徐建国老师会在直播课上同步实操演练,教你手把手入门OpenHarmony北向技术应用开发,帮助开发者们可以在知识赋能直播间学习更多、收获更多,在OpenHarmony领域贡献自己的开源成果,一起共同成长。
2023-04-17 11:19:11
90
1
原创 OpenHarmony社区运营报告(2023年3月)
《OpenHarmony 2022年度运营报告》于3月正式发布,2022年OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源项目潜心务实、深耕发展,OpenHarmony位居Gitee活跃度指数第一名,已有51家共建单位,130+生态伙伴,超过5100位代码共建者,拥有超过220款软硬件产品通过兼容性测评,OpenHarmony项目群成员单位增加至29家。
2023-04-14 10:21:15
565
原创 未来已来,OpenHarmony 3.2 Release发布,迈入发展新阶段
相比一年前的OpenHarmony 3.1 Release版本,新版本的系统能力、系统整体性能、稳定性和安全性都进一步得到提升和完善;OpenHarmony 3.2 Release版本为应用开发而生,在系统能力、开发工具和API、硬件调测等将为开发者带来全新体验!
2023-04-13 11:27:57
824
原创 重磅官宣,OpenHarmony开发者大会来了!
春风送暖万物新,OpenHarmony正当时。诚邀您参加本届大会,聆听行业大咖分享操作系统和开源的最新前沿研究成果,结识同行了解最佳实践,与社区技术专家互动交流,抢先获得OpenHarmony系统、技术和工具的最新动态。开放原子开源基金会OpenHarmony开发者大会2023将于4月19日在北京召开。诚邀您持续关注,近期我们将发布更多更详细的会议信息,4月19日我们不见不散!
2023-04-12 11:20:56
243
原创 OpenHarmony标准系统开机时长优化
我们该如何在OpenAtom OpenHarmony(简称OpenHarmony ) 标准系统现有的能力下,完成秒级开机?
2023-04-10 10:31:51
506
原创 基于ArkUI框架开发-ImageKnife渲染层重构
由于image组件其实是一个完整的集加载解析和图片展示的组件,渲染的模式只能通过配置固定参数进行,面对复杂的需求场景,可能会出现扩展性不够的情况。综上可知,此次重构渲染层,一共新增了6个基础能力,适配了IDE最新版特性自定义组件可链式调用通用属性和方法,并且采用适合的设计模式保留了自定义组件绘制部分的拓展能力。渲染绘制是主线程才能操作。●支持用户配置参数使用:(例如:配置是否开启一级内存缓存,配置磁盘缓存策略,配置仅使用缓存加载数据,配置图片变换效果,配置占位图,配置加载失败占位图等)。
2023-04-06 10:28:58
524
原创 开发板如何适配OpenHarmony 3.2
编译脚本会先把kernel/linux/linux-5.10拷贝到out/kernel/src_tmp/linux-5.10/,然后打上3568的内核补丁patch -p1 < kernel/linux/patches/linux-5.10/rk3568_patch/kernel.patch后编译生成自己的镜像,不利于我们开发,我们自己开发过程中做如下修改,这样方便我们开发过程中的修改。
2023-04-04 11:04:59
663
原创 OpenHarmony社区运营报告(2023年2月)
本次技术峰会由OpenHarmony技术指导委员会主办,华为承办,润和软件、九联科技、软通动力、诚迈科技、优博讯等单位共同支持,以“技术构筑万物智联”为主题,汇聚学术界、产业界前沿技术,分享当下技术成果,探索下一代技术方向,共绘未来开源生态新蓝图。在开放原子开源基金会的指导下,华为与24家伙伴签署OpenHarmony生态使能合作协议,覆盖金融、教育、交通、能源、政务、安平、制造、卫生、广电、电信等行业,共同推动OpenHarmony生态的繁荣与发展。期盼各共建单位和广大开发者积极锁定共建需求,贡献力量。
2023-03-28 10:08:05
289
原创 成长计划知识赋能 | 第九期:渐进式深入理解OpenHarmony系统
成长计划知识赋能直播第九期如约而至,面向OpenHarmony初中级开发者,解析OpenHarmony系统架构和驱动框架,助力开发者快速上手OpenHarmony系统开发。详情见海报内容,资深软件开发工程师梁开祝老师带你一起学习进步。
2023-03-27 10:32:22
147
原创 ArkUI中的线程和看门狗机制
另外对于Stage模型,ui_runner和platform_runner又是同一个,所以对Stage模型来说,TaskType::UI,TaskType::IO,TaskType::GPU,TaskType::PLATFORM类型的任务实际都是由主线程来执行的。• 对于Stage模型的应用,ui线程复用了主线程,并且Stage模型应用目前都是声明式前端,导致js线程又复用了ui线程。• 对于FA模型的应用,除了八个后台任务线程,根据Ability的数量会创建若干个名字以“.ui”结尾的线程。
2023-03-15 10:51:25
351
原创 OpenHarmony 3.2 Beta Audio——音频渲染
WriteStream方法不是直接调用pulseaudio库的写入方法,而是通过WriteToAudioCache方法将数据写入缓存中,如果缓存没有写满则直接返回,不会进入下面的流程,只有当缓存写满后,才会调用下面的PaWriteStream方法。本文主要对OpenHarmony 3.2 Beta多媒体子系统的音频渲染模块进行介绍,首先梳理了Audio Render的整体流程,然后对几个核心的方法进行代码的分析。本文主要针对音频渲染功能进行详细地分析,并通过源码中提供的例子,对音频渲染进行流程的梳理。
2023-03-02 11:16:28
447
原创 如何使用DevEco Studio创建Native C++应用
ArkTS/JS与C/C++ 混合开发是OpenHarmony系统中的一套原生模块扩展开发框架,它基于Node.js N-API规范开发,为开发者提供了ArkTS/JS与C/C++模块之间相互调用的交互能力。如下所示,其中Add对应的是Native C++的接口,其应用端的接口对应为add,NAPI通过napi_define_properties接口将napi_property_descriptor结构体中的2个接口绑定在一起,并通过exports变量对外导出,使应用层可以调用add方法。
2023-02-22 11:21:00
1154
3
原创 大咖齐聚!OpenHarmony技术峰会豪华嘉宾阵容揭晓
第一届开放原子开源基金会OpenHarmony技术峰会即将来袭。展示OpenHarmony操作系统技术革新。1场主论坛、6场分论坛干货拉满。2月25日,一起解锁更多精彩!重量级嘉宾和行业大咖高能集结。
2023-02-21 10:38:09
1257
4
原创 重磅官宣,OpenHarmony技术峰会来了
第一届开放原子开源基金会OpenHarmony技术峰会即将启幕。开启一场“技术硬核”探索盛宴。亮点拉满,我们共同期待。众多行业大咖齐聚深圳。
2023-02-14 09:58:41
529
原创 OpenHarmony 3.2 Beta多媒体系列——视频录制
CameraManager创建采集会话,是通过serviceProxy_->CreateCaptureSession方式进行调用,这里涉及到了OpenHarmony中的IPC的调用,serviceProxy_是远端服务在本地的代理,通过这个代理可以调用到具体的服务端,这里是HCameraService。通过调用captureSession的AddInput方法,将创建的CameraInput对象添加到采集会话的输入中,这样采集会话就知道采集输入的设备。
2023-02-09 10:59:33
800
原创 稀疏镜像在OpenHarmony上的应用
稀疏镜像数据格式:首先是sparse_header占用28byte,然后是12byte的chunk_header,同样这chunk_header的类型决定了后面跟着的数据,如果读到数据是0xCAC1意味着后面是本身的raw_data,如果是0xCAC3,则后面num为0,接着再0xCAC2意味着后面填充4byte的内容。本文介绍了OpenHarmony系统中实现稀疏镜像升级的方法,理解稀疏镜像原理及稀疏镜像还原方法可以快速在自己的系统中应用稀疏镜像升级,提高系统升级速度。增加稀疏镜像类声明及相关变量定义。
2023-02-08 11:19:03
270
原创 如何实现OpenHarmony的OTA升级
OpenAtom OpenHarmony(简称“OpenHarmony”) 3.1 Release不支持富设备升级,本章节所有实例在OpenHarmony 3.2 Beta3上验证,升级方式为全量升级,所用开发板为诚迈科技基于RK3568设计的HCPAD-100开发板以及OpenHarmony主干使用的DAYU200开发板。随着设备系统日新月异,用户如何及时获取系统的更新,体验新版本带来的新的体验,以及提升系统的稳定性和安全性成为了每个厂商都面临的严峻问题。同时,对于常见问题知道如何快速定位!
2023-02-07 10:25:04
498
原创 OpenHarmony社区运营报告(2022年12月)
• 截至12月31日,OpenHarmony 生态委员会成员单位累计37家,本月新增7家,分别是:艾体威尔电子技术(北京)有限公司、宝宝巴士股份有限公司、北京搜狗科技发展有限公司、福州市凌睿智捷电子有限公司、广州朗国电子科技股份有限公司、惠尔丰信息系统有限公司、深圳康佳电子科技有限公司(按照中文首字母排序)。• 2022年12月9-10日,第十届中国互联网测试开发大会圆满举行。• 支持配置应用的依赖关系,支持对应用安装及卸载的名单进行增、删、查操作,支持对禁止运行的应用名单进行增、删、查操作。
2023-01-28 14:56:39
700
原创 OpenHarmony如何切换横竖屏?
其中还涉及到了上下文的获取:Stage模型用(getContext(this) as any),FA模型(featureAbility.getContext()),大家可以在此基础上利用生命周期的回调,在合适的地方完成对应的操作。在Stage模型中,使用到的主要是Window(窗口)。在设置横竖屏切换的时候,需要先使用getLastWindow()、createWindow()、findWindow()中的任一方法获取到Window实例,再通过此实例调用对应的方法,本文使用的是getLastWindow。
2023-01-18 10:26:45
698
原创 带你玩转OpenHarmony AI-基于海思NNIE的AI能力自定义
本实例中,需要完成手势的检测和分类,其中对于手势检测选用了Yolov2模型,对于手势的分类则选用Resnet18模型;相信大家从玩转OpenAtom OpenHarmony(简称“OpenHarmony”)AI系列专题的其他文章中,已经拓展了OpenHarmony AI在智慧出行、智慧办公等多场景下的AI自动检测、识别和判断的新体验,对于OpenHarmony平台上的AI开发有了一定认识。4) 模型训练:利用算法模型和相应数据集训练出目标模型。本实例中,需要完成手势的检测和分类,需要加载相关两个模型文件。
2023-01-12 11:18:00
651
原创 一文总结ACE代码框架
ACE_Engine框架是OpenAtom OpenHarmony(简称“OpenHarmony”)的UI开发框架,为开发者提供在进行应用UI开发时所必需的各种组件,以及定义这些组件的属性、样式、事件及方法,通过这些组件可以方便进行OpenHarmony上UI应用的开发。1. 组件的属性和样式是保存在前端页面的,通过JsframeWork解析页面,并调用JsEngine的CreateDomNode接口创建Dom节点的同时传递新节点属性和样式。RenderNode即可绘制的节点,负责组件的最终布局和绘制。
2023-01-10 11:19:26
645
转载 OpenHarmony系统使用gdb调试init
OpenAtom OpenHarmony(简称“OpenHarmony”)适配新的开发板时,启动流程init大概率会出现问题,其为内核直接拉起的第一个用户态进程,问题定位手段只能依赖代码走读和增加调试打印,初始化过程中系统崩溃的问题就更难定位了。如果能使用gdb调试init,会极大提高定位效率。本文将详细阐释二次启动的标准系统如何使用gdb调试init。1. 编译出带debug信息的调试版本将gdb打包到系统镜像中。init不正常的情况下,系统无法正常启动工作,无法使用hdc工具加载gdb工具,所以直接在制
2023-01-05 10:25:01
243
转载 玩转OpenHarmony社交场景:即时通讯平台
最后,好友的终端应用接收到消息。本样例是基于即时通讯(Instant messaging,简称IM)服务实现的OpenAtom OpenHarmony(简称“OpenHarmony”)应用,允许两人或多人使用互联网即时地传递文字、图片、文件、语音、emoji等讯息,可应用于各类聊天场景,为人们带来更加及时高效的通讯体验。(1) 通讯功能通讯功能是通过TCP协议实现的,我们将通讯接口connect()、send()、receive()的实现放置在CPP文件中,通过NAPI的方式对JS层暴露接口。
2023-01-03 12:16:25
180
转载 玩转OpenHarmony智能家居:如何实现树莓派“碰一碰”设备控制
近场通信(Near Field Communication,简称NFC),是一种新兴的技术,使用了NFC技术的设备可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别(RFID)演变而来。“碰一碰”设备控制,依托NFC短距通信协议,通过碰一碰的交互方式,将OpenAtom OpenHarmony(简称“OpenHarmony”)标准系统设备和全场景设备连接起来,解决了应用与设备之间接续慢、传输难的问题,实现一碰拉起应用,为用户带来无缝切换的流畅体验。• 在小熊派的NFC被动贴片中写入控制端应用信息。
2022-12-27 11:26:22
187
转载 带你玩转OpenHarmony AI:打造智能语音子系统
智能家居、智慧厨房、智能汽车等等,一切衣食住行都在往智能方向发展,那我们该如何在OpenAtom OpenHarmony(简称“OpenHarmony”)系统现有的能力下,搭建一套完整的语音子系统呢?本文介绍了博泰车联网的研发同学如何搭建一套属于OpenHarmony的语音子系统CarVoiceAssistant,并以车载交互的形态研发语音助理项目的过程。设备唤醒之后,需要持续采集用户音频数据,并传输给博泰QingAI云端,做持续识别和最终语义识别,识别之后客户端根据语义做具体动作执行。
2022-12-23 11:31:17
177
转载 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别
随着时代的进步,全民刷脸已经成为一种新型的生活方式,这也是全球科技进步的又一阶梯,人脸识别技术已经成为一种大趋势,无论在智慧出行、智能家居、智慧办公等场景均有较广泛的应用场景,本文介绍了基于SeetaFace2人脸识别引擎在OpenAtom OpenHarmony(以下简称“OpenHarmony”)上实现人脸识别的AI能力。其中的PD是三大模块中的关键点定位模块(FaceLandmarker),关键点定位需要根据面部特征模型进行对比分析的,SeetaFace2提供2种面部特征模型。
2022-12-21 10:08:30
261
转载 玩转OpenHarmony PID:教你打造两轮平衡车
两轮平衡车的控制主要涉及三个PID环的串联使用,它们分别是直立环(平衡控制)、速度环(速度控制)、转向环(方向控制)。P比例参数:该参数能够快速让小车达到平衡状态,但是由于控制是滞后的,以及是惯性系统,容易带来超调,即小车会出现前后摇摆的现象。D微分参数:平衡小车维持的是倾斜角度要为平衡角度,由于PI参数使小车振荡,小车会出现前后摇摆现象,加入D微分参数能够消除小车的振荡。I积分参数:小车由于摩擦力或者风阻力,并且P不能太大,只靠P控制有可能达不到稳定状态,所以需要加入I积分参数,消除稳态误差;
2022-12-16 12:07:19
473
转载 LiteOS-A内核中的procfs文件系统分析
目录一、 procfs介绍1. Linux系统中的procfs文件系统包含的内容2. OS-A系统的命令以及procfs文件系统的内容二、 procfs文件系统的设计1. VFS提供的重要接口2.文件系统的重要接口设计三、 procfs文件系统的实现1. Procfs的注册过程2. Procfs的初始化初始化四、procfs业务分析1. procfs挂载过程分析2. 节点的增加过程分析3、writeproc shell命令的创建五、总结procfs是类UNIX操作系统中进程文件系统(process file
2022-12-08 11:42:38
239
转载 OpenHarmony 3.2 Beta多媒体系列——音视频播放gstreamer
ctrler_是PlayBinCtrlerBase类型的变量,直接看PlayBinCtrlerBase的ReportMessage方法,这个方法的核心,是创建一个任务后,将任务放入消息队列中,等待消息被处理,这里我们最想知道的是这个消息会在什么地方被处理。通过bin降低了应用的复杂度。前面调用了PrepareAsync,所以当前的状态是Prepared,调用到了PreparedState的Play()方法,这个方法还是按照之前Prepare的方式,调回到PlayerServer的HandlePlay()。
2022-11-24 10:41:29
251
转载 OpenHarmony 3.2 Beta多媒体系列——音视频播放框架
首先根据RunCase可以大致了解一下播放音视频的主要流程,创建播放器,设置播放源,设置回调方法(包含播放过程中的多种状态的回调),设置播放显示的Surface,这些准备工作做好之后,需要调用播放器的PrepareASync方法,这个方法完成后,播放状态会变成Prepared状态,这时就可以调用播放器的play接口,进行音视频的播放了。这个方法中发起了一个播放的任务。RegisterTable()方法中,将字符串和对应的方法映射到Map中,这样后续的DoNext会根据输入的命令,来决定播放器具体的操作。
2022-11-22 10:25:13
335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人