IPC: openharmony与android有多相似/IPC: how similar between openharmony and android

IPC: openharmony与android有多相似/IPC: how similar between openharmony and android

通过本篇文章 你会发现 在IPC这块的代码和架构设计 . openharmony(以下简称oh)与android 有相当大程度的相似性

可能有人会认为oh是在抄袭android, 所以给予oh负面的评价.

本篇的主要目的 不是为了贬低oh或者国人os, 只是从技术角度展示oh的真实情况. 至于什么样的评价,取决于其他人加入了什么样的想法.

科学技术代表智慧, 智慧没有国界 更没有界限 , 都是人类智慧的结晶

好了开始正文

IPC 介绍

Binder-IPC 是一种进程间通信机制,基于开源的 OpenBinder 实现;OpenBinder 起初由 Be Inc. 开发,后由 Plam Inc. 接手。
从字面上来解释 Binder 有胶水、粘合剂的意思,顾名思义就是粘和不同的进程,使之实现通信。

工作逻辑

IPC-binder工作流程

  1. 以上这种工作逻辑来源于android的分析资料, 通过阅读oh的代码后,发现这张图也同样适用.

架构方面

android

android-binder 架构

openharmony

oh-binder 架构

  1. 以oh3.1为例,整理了oh-IPC的类关系图,再经过整理、删减,可以发现类的关系架构图能够和android的相对应.

代码方面

层级关系

代码对比

  1. android-IPC中的IPCThreadState与oh-IPC的BinderInvoker存在对应关系

总结

  1. 以上对比了openharmony与android的架构,层级,工作逻辑还有代码. 他们基本上是差不多的. 可以说在以上展示的代码片段中, 基本一样,只是换掉了不同的名称
  2. 要说为什么要这样. 这个取决于他们都选用了同一个IPC-binder的通信框架. 技术框架一旦确定,整体方面一般不会发生变化。最多修改的是一些枝叶
  3. 在项目和产品开发中,技术选型至关重要。一旦确定后,后面的开发工作都是会围绕和基于这个选型展开
  4. 对于openharmony的评价,虽然上面有很多android 的影子,但是oh自身具备了一些android不具备的功能和特点. 例如HDF驱动框架
  5. binder原本是一个开源项目, 不能将binder与某种操作系统绑定起来。只是这两种操作系统都采用了binder-IPC方式

参考资料


IPC: openharmony与android有多相似/IPC: how similar between openharmony and android
https://pans0ul.github.io/2022/07/09/IPC-how-similar-between-openharmony-and-android/
Author
pans0ul
Posted on
July 9, 2022
Licensed under