作者:苟晶晶前言当开发者为OpenHarmony系统框架开发某些功能时,有时需要将这个功能包装成一个独立的服务进程运行在系统中,为了其它应用进程能够调用此服务,开发人员需要基于系统IPC通信框架编写一套远程接口调用实现。实现Service远程调用接口需要开发人员熟悉IPC通信框架,了解proxystub的继承与实现方式,掌握C++类型转为MessageParcel数据包的各种API方法,有一定的学习成本。而Service代码生成工具能够帮助使用者生成框...
作者:张守忠1WPAsupplicant简介WPA是WiFiProtectedAccess的缩写,中文含义为“WiFi网络安全存取”。WPA是一种基于标准的可互操作的WLAN安全性增强解决方案,可大大增强现有以及未来无线局域网络的数据保护和访问控制水平。wpasupplicant是开源项目源码,支持Linux,Windows以及很多嵌入式系统。它是WPA的应用层认证客户端,负责完成认证相关的登录、加密等工作。wpasupplicant是一个独立运行的守护进程,其核心是一个消息循环...
2023-04-25 17:08:57 3697浏览 6点赞 3回复 2收藏
作者:赵军霞前言关于NAPI接口相关知识,之前我们介绍过NAPI同步异步接口使用方法、应用启动触发的ArkUIetsruntime启动流程,从NAPI使用到整体流程给大家做了介绍,本次我们针对NAPI模块注册流程做深入介绍,给大家后续工作中开发、使用NAPI接口提供指导。[OpenHarmony源码解析之ACE(JavaScript运行环境初始化)](https:ost.51cto.composts7908)[OpenHarmony源码解析之JavaScriptAPI框架(NAPI)](https:ost.51cto.composts8390)...
2023-04-25 17:04:24 3616浏览 5点赞 4回复 3收藏
1预备知识Linux中主要的IPC机制有:管道(pipe)、信号(signal)、信号量(semophore)、消息队列(Message)、共享内存(ShareMemory)、套接字(Socket)等。OpenHarmony基于binder驱动封装了一套ipc机制(foundation\communication\ipc)用于实现设备内的跨进程通信。Binder机制通常采用客户端服务器(ClientServer)模型,服务请求方(Client)可获取服务提供方(Server)的代理(Proxy),并通过此代理读写数据来实现进程...
2023-04-11 15:17:27 3177浏览 7点赞 4回复 5收藏
作者:陈迅一,性能问题分析方式一般来说,我们发现程序卡顿,排除其他程序问题和硬件问题,那一定是自身程序中某个位置运行时,消耗的时间过长导致,要找到耗时的代码段,才能有针对性的进行优化,那第一个问题就是如何找到耗时的代码段。首先我们能想到,在程序中可能存在问题的地方,加入计算时间差的代码,然后不断缩小范围,找到最终耗时的点includeuint64tGetTimeStampUS(){structtimevaltv;gettimeofday(&tv,NULL);retur...
2023-04-11 15:12:26 2194浏览 4点赞 3回复 1收藏
作者:蒋卫峰钟文清引言分析Overlayfs联合文件系统源自于培养OpenHarmony高端人才的动机,通过讲Overlayfs联合文件系统移植到LiteosA内核的项目培养一批精通OpenHarmony内核的人才,也通过本文向各位热爱OpenHarmony内核的技术开发者和爱好者叙说一个复杂文件系统的具体实现过程和包含的软件思想,我们是一群热爱OpenHarmony,热爱开源,传递技术正能量的OpenHarmony开发工程师。Overlayfs是一种联合文件系统,它以堆叠的形式将...
2023-04-11 15:06:59 2893浏览 6点赞 4回复 2收藏
作者:吴文璐1简介多模输入子系统是OpenHarmony输入事件管理框架。多模输入服务接收多种类型输入设备(触摸屏、鼠标、键盘、触摸板等)的输入事件,通过归一标准化处理后,分发给多模客户端(应用,系统服务)。多模输入还提供事件注入接口,该接口目前仅对系统应用开放。多模输入子系统分为框架部分和服务部分:框架部分封装了各种接口给其他子系统和应用来调用;服务部分实现了这些接口,并且实现了事件派发处理的核心逻辑。...
2023-03-30 18:03:34 3393浏览 4点赞 3回复 2收藏
作者:查维Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),OpenHarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(FeatureAbility)和PA(ParticleAbility)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。以上摘自官方文档,本文简要介绍Page应用(AceAbility为例)启动过程,减少入手难度。1.AppSpawn进程响应应用sta...
2023-03-21 10:31:50 2331浏览 10点赞 7回复 5收藏
作者:苟晶晶1简介Ability是应用所具备能力的抽象,也是程序的重要组成部分。OpenHarmony的Ability子系统提供了Ability启动及其生命周期管理的功能。Ability框架模型结构分为FA模型和Stage模型,FA模型Ability分为FA(FeatureAbility)和PA(ParticleAbility)两种类,其中FA支持PageAbility,PA支持ServiceAbility和DataAbility。本文主要介绍基于FA模型的PageAbility运行时介绍,启动流程贯穿了应用程序用户进程、系统服务进程,...
2023-03-21 10:23:05 2078浏览 2点赞 1回复 1收藏
作者:吴文璐一、前言本文主要分析ArkUI中涉及的线程和看门狗机制。二、ArkUI中的线程应用Ability首次创建界面的流程大致如下:说明:•AceContainer是一个容器类,由前端、任务执行器、资源管理器、渲染管线、视图等聚合而成,提供了生命周期对接、功能调度接口和UI渲染的各项能力。•Ability在FA模型中实际为AceAbility,和AceContainer容器类搭配管理界面。在AceAbility的生命周期函数AceAbility::OnStart(constWant&want)中...
2023-03-15 09:48:56 2189浏览 5点赞 3回复 2收藏
作者:王石蓝牙功能是无线短距的重要能力,在工作、生活中有很多蓝牙设备,比如车载蓝牙设备,蓝牙耳机,蓝牙键盘。1994年由电信商爱立信发展出这个技术,最初蓝牙的设计是系统创建出一个RS232数据线的无线通信技术替代版,能够链接多个设备并克服同步问题。目前蓝牙技术由蓝牙技术联盟(SIGSpecialInterestGroup)来负责维护其技术标准,IEEE曾经将蓝牙技术标准化为IEEE802.15.1,但是这个标准已经不再继续使用。接下来我们就...
2023-03-14 17:45:50 1905浏览 4点赞 4回复 3收藏
作者:王清由浅入深学习新模块之windowmanager(二)前言:在上一篇文章https:ost.51cto.composts20923中,主要介绍了windowmanager的发展史和功能介绍,本文开始介绍OpenHarmony的windowmanager的具体实现相关。windowmanager在OpenHarmony中的代码目录:foundationwindowwindowmanager├──dmDislplayManagerClient实现代码│├──BUILD.gn│├──include│├──src│└──test├──dmserverDislplayManagerService实现...
2023-03-09 10:14:36 2296浏览 3点赞 2回复 1收藏
作者:张志成前言本文基于OpenHarmony源码梳理应用的启动过程,介绍appspawnabilityruntimeaceengineetsruntime等重要模块的初始化流程,以及它们之间的相互关系。不同形态的hap应用在具体细节上会有一些差异,但整体的流程上是一致的。本文基于OpenHarmoney3.2标准系统FA模式的ets应用进行阐述。1.应用启动整体流程查看各个进程的父子关系可知,OpenHarmony的系统应用和用户应用进程,都是由应用孵化器(appspawn)拉起的。应用...
2023-03-07 15:21:35 2682浏览 4点赞 3回复 3收藏
作者:巴延兴一、简介Audio是多媒体子系统中的一个重要模块,其涉及的内容比较多,有音频的渲染、音频的采集、音频的策略管理等。本文主要针对音频渲染功能进行详细地分析,并通过源码中提供的例子,对音频渲染进行流程的梳理。二、目录foundationmultimediaaudioframeworkaudioframeworkc├──frameworks│├──jsjs接口││└──napi││└──audiorendereraudiorendererNAPI接口││├──include│││├──audiorende...
2023-03-03 14:15:03 3026浏览 2点赞 2回复 1收藏
作者:蒋卫峰李涛前言上一篇文章中介绍了loongarch中TLB相关的异常处理,这一篇文章继续介绍TLB相关的维护操作。1.TLB硬件组织机构首先补充loongarch中TLB相关的硬件背景知识。loongarch架构中,TLB分为两个部分:一个是所有表项的页大小都相同的SingularPageSizeTLB,简称STLB;一个是支持不同表项的页大小可以不同的MultiplePageSizeTLB,简称MTLB。在进行虚实地址转换时,STLB和MTLB同时查找。同时软件上需保证不会出现MTLB...
2023-02-27 13:43:59 2698浏览 8点赞 6回复 3收藏
作者:蒋卫峰李涛前言上一篇文章中介绍了loongarch架构中的地址翻译模式及其配置方法,涉及到虚拟内存系统中页表相关的管理。本文中则介绍TLB相关的异常处理,并结合代码进行分析。因为loongarch架构中采用的是一种软件管理TLB的方法,所以其处理流程和软件所需要进行的管理操作与很多常见的架构不同。1.TLB表项和页表项首先介绍TLB表项和页表项的格式,作基本的了解。1.1页表项格式下图为loongarch中的页表项格式:下面为各位...
2023-02-17 17:36:30 4330浏览 5点赞 3回复 3收藏
作者:王石近期,深圳开鸿数字产业发展有限公司(以下简称“深开鸿”)VKGLCTS测试套件适配正式合入OpenAtomOpenHarmony(以下简称“OpenHarmony”)社区主干。作为将VKGLCTS测试套件合入OpenHarmony主干的代码提交者,我将与大家一起分享我们团队在适配与移植过程中的故事和经验,希望能给广大开发者一些参考。我和我的团队我是深开鸿OS框架开发工程师王石,作为深开鸿参与开源共建的骨干,我主要负责VKGLCTS测试套件的GPU图形...
2023-02-16 14:15:33 2787浏览 4点赞 3回复 2收藏
作者:巴延兴一、简介媒体子系统为开发者提供了媒体相关的很多功能,本文针对其中的视频录制功能做个详细的介绍。首先,我将通过媒体子系统提供的视频录制Test代码作为切入点,给大家梳理一下整个录制的流程。二、目录foundationmultimediacameraframeworkc├──frameworks│├──js││└──cameranapinapi实现││└──src││├──inputCamera输入││├──outputCamera输出││└──session会话管理│└──nativena...
2023-02-09 10:51:21 3791浏览 4点赞 3回复 3收藏
作者:王清前言:作为一个开发人员,随着时代和行业的发展,总会不断的接触不同的新任务,新模块,这就需要不断的学习与沉淀。因为工作的需求,笔者需要对一些自己负责模块之外的模块进行学习和熟悉,对此笔者把这个学习过程以该系列文章做一个记录分享给大家。学习新模块的总体思路:学习的最好的方式就输出,这个是我写这篇文章的原因。次好的方式是带着疑问,通过学习与思考,在解决自己疑问的过程中获得知识与认知,最后恍...
2023-02-06 10:36:01 4548浏览 10点赞 7回复 7收藏
作者:蒋卫峰李涛前言本文是loongarch架构介绍系列的第三篇文章。前面的第一篇文章介绍了loongarch架构中的基础指令和使用,第二篇文章介绍了内存模型、原子指令与栅障指令的使用。虚拟内存系统是软硬协同的一个经典案例,如今主流的架构和操作系统都已经支持虚拟内存机制。本文介绍loongarch虚拟内存系统中的地址翻译部分,主要包括地址翻译模式、loongarch中多级页表和相关的配置。另外本文中许多寄存器等资源属于特权资源,...
2023-01-18 14:55:03 8832浏览 4点赞 3回复 2收藏