分析了 200w 行 OpenHarmony 2.0 源码后,有了这些发现

sw


背景


于2021年6月2号开源,第一时间下载了代码,做了一些分析。晚上HarmonyOS2发布,看了直播,感觉很激动。

这里分享一些感受。主要是汇总了和HarmonyOS发布会一些我比较感兴趣的东西。

的初步情况


此次开源的版本就叫。以后也不再区分L2、L3、L4这样的。该版本可在所有大小设备上使用。

此次开源没有Java程序的支持,也就是不支持Android。没有Android的东西,也不支持Java应用。

下图是代码文件夹

第一时间对代码量进行了统计。我算的比较粗,用的统计软件也是我十年前写《深入理解Android》几本书时用的了(有朋友知道好使的代码统计软件不妨推荐下)

不含kernel、third_party(包括device/hisilicon/third_party也挪出去),所有我认识的源码文件共包含有效代码行数1912976,接近200w行。

而归属third_party+
device/hisilicon/third_party的代码行数为7607742(不考虑Html/html)

所以,1912976/9520718=20%。鸿蒙自己开发的代码占全部源代码的20%。不要小看这个,按之前的网上说法,AOSP里谷歌写的代码才占了15%。

当然,以上代码总量没计算LinuxKernel,那玩意光自己就有近1300多万行代码。

Codelab里的分布式场景介绍


华为开发者官网里开源了二十多个Demo,我们第一时间整理了其中和分布式有关的Demo如下:

所有Demo入口地址在:


以上总结可供老板,做决策的领导,想方案的产品经理看。

发布会中一些有意思的信息


接下来说发布会。头天晚上看完后,第二天又看了回看,把一些细节给摸清楚了。

超级终端,分布式等

全栈解耦:一套代码,满足各种硬件要求。这一条在这部分提得很少,后面讲鸿蒙桌面的时候提得多

协同办公:手机,平板,PC协同

统一控制中心:所有设备的控制,状态显示都集中在手机上,就好像它们是一台设备一样。

做了一个统一的UI/UE入口——卡片:方便用户使用。其使用场景有“可以选择音乐输出到任何连接上的耳机,音箱"。

多设备构成超级终端:用户操作体验增强:卡片里展示超级终端,可被连接的设备悬浮显示。拖拽即可完成手机与其他设备的连接。

另外,几个设备协同是有排斥关系的。如下面右图。蓝色是室外音箱,对角的是室内音箱。当室内音箱被协同后,室外音箱会被排除出去。这一点只是想说明,华为考虑得比较周到,它把设备协同中出现的设备之间冲突情况也考虑进来。另外,手表,pad,手机都可以运行这个控制中心。

多设备协同的一个有意思的场景是”手机播放音乐,音箱和手机协同后,声音从音箱出。“

这里,王博士提到了两个关键技术,值得重视:

应用场景为多设备间的音画同步软时钟同步

无线传输时的抗干扰算法

接着,介绍了一个手机和PAD,以及手机和PC的协同,马上看一下:

手机和pad协同:pad和手机协同后,pad可方便访问手机上的照片。如下图所示

手机和PC协同:手机变成PC上的一个盘符。PC需要安装一个插件。类似MTP那样的,只不过改成无线传输了

智能家电:碰一碰配网,碰一碰展示设备的智能功能

鸿蒙桌面

解决一次开发多端部署的问题。现在看解决办法和快应用比较像,呈现形式为卡片,不需要安装(意思是不需要用户去应用市场下载和安装,是不是类似微信小程序,快应用?技术上不是特别确定,但感觉小程序,卡片这种模式越来越流行了)。

鸿蒙桌面这里提到了两个关键技术:

分布式编程框架:就是原来提到的分布式软总线,分布式任务调度,分布式数据管理等;

原子化服务:不好描述是什么。但展现形式是卡片;

有一个应用场景是跨设备流转:手机和pad搭配成超级终端后

手机能看到pad上的任务。比如下面这样

其他一些吓人的技术

对HarmonyOS的理解


首先,OpenHarmony是不含Android,所以,大家不必纠结OpenHarmony是不是Android套壳,现在连Java都跑不起来。而HarmonyOS是OpenHarmony的厂商定制版。为了消费者考虑,现阶段兼容Android是一种务实的选择。随着OpenHarmony的生态完善,逐步替代Android也不是不可能。

文章版权声明:除非注明,否则均为纵投光影网原创文章,转载或复制请以超链接形式并注明出处。

上一个 快尝小鲜肉 高性价比3D投影机攻略

下一个 第二十一届深圳文博会开幕,文化湘军展示潇湘文产美好未来