概念简述用户程序框架存在一种异步操作相关的框架,对于应用程序,需要保证ui线程不被阻塞,这个框架便保证了这样的一个机制。eventhandler:是一种用户在当前线程上投递InnerEvent事件或者Runnable任务到异步线程上处理的机制;eventRunner是存在一个线程上的事件循环器eventQuene存在于eventRunner中管理innerEvent的数据结构innerEvent用于投递的事件(也包括任务,线程间通信以及异步任务处理)源码相关分析innerEventclassIn...
2023-02-11 23:14:07 5165浏览 3点赞 1回复 0收藏
iremoteObjectOpenHarmony中跨进程注册的observer概述一般来说,我们在编写代码的时候,经常遇到回调接口需要注册的情况,在单进程之中,我们经常是函数指针传给调用者。那跨进程的场景是如何操作的呢?答案就是iremoteObject。以标准系统蓝牙代码为例最近根据工作的要求,学习研究蓝牙相关代码。通过源码,我们理解学习了针对蓝牙服务,多事件监听的设计模式。.├──bluetootha2dpsinkobserverproxy.h├──bluetootha2dpsink...
2022-04-26 17:54:35 1.1w浏览 9点赞 3回复 10收藏
源码分析openHarmonyIPC数据传输情景分析1.前情概览我们在前片博客中讲述了proxystub架构的一般编程范式,这篇文章关注驱动自身的数据传输,做一次完整的数据分析。由于IPC通信流程比较复杂,我们先开启上帝视角,将一些数据结构和数据流向直接阐述出来,然后再结合源码调用流查看是否具体是这样的。2.数据结构简述2.1messageParcelmessageParcel用户态数据,可以写入一般类型,也可以写入iremoteObject。为什么要区分这两种类...
2022-03-29 15:14:52 1.6w浏览 12点赞 4回复 10收藏
源码分析openharmony服务设计架构proxystub服务概览openHarmony中存在很多的服务,一般来说可以使得A应用调用B服务的方法,就像在自己进程中调用一样,这里具体的实现实际通过binder驱动实现。binder驱动通过mmap将内核态代码映射到用户态,直接读写数据这样就完成了跨进程的调用。不过这不是该篇内容的重点,本片主要讲一下proxystub的设计模式。服务的一般编码模式使用proxystub架构编程,大致可以分为以下三个步骤:1.设计接...
2022-03-17 11:23:48 1.8w浏览 9点赞 4回复 11收藏
openHarmony软总线架构分析基本类阐述本次说明可能侧重在标准系统之上。软总线依旧采用鸿蒙经典的proxystub架构,接口类ISoftBusServer,ISoftBusClient。一般来说,一些服务就一个接口类,为什么软总线会有两个呢?,我们再看看继承关系。proxystub可以参考https:ost.51cto.composts10765和ISoftBusServer相关的有类似的ISoftBusClient从上面的图中可以看出,一个stub甚至对应几个proxy,看下代码,可以看到就是proxy就是解耦...
2022-03-16 15:44:35 2.0w浏览 12点赞 8回复 10收藏