鸿蒙系统是否是Android套壳?代码层面深层剖析

12月16日,鸿蒙2.0(HarmonyOS 2.0)重磅发布,开始应用到手机系统,同时官方开发工具HUAWEI DevEco Studio和开发工具包也更新到了2.0,这意味着广大程序员可以在手机、平板上开发App。
鸿蒙2.0的发布,立刻在网络掀起了一阵讨论热潮,一部分网友说鸿蒙是自主研发,民族荣耀,另一部分网友说鸿蒙是Android套壳,欺世盗名。说鸿蒙是自主研发的有以下观点,
1,鸿蒙os是微内核liteos,跟Android的宏内核完全不一样,只是兼容Android的app。
2,如果鸿蒙剽窃了Android,谷歌会坐视不理么,肯定起诉华为,当年谷歌就搞死了阿里的YunOS。
3,鸿蒙支持分布式,比Android高级多了,根本不是一回事。
4,鸿蒙手机开机没有 Power By Android了

但是说鸿蒙是Android套壳的也有一套理论,

1,把Android 低版本的app放到鸿蒙手机上出现了Android系统官方提示,如图,这是系统的提示,不是开发者决定的。鸿蒙手机系统刚发布,哪来的旧系统?
image.png

2,鸿蒙的app安装包格式是hpk,解压后直接出现了apk,就是Android的安装包格式。

3,鸿蒙sdk里面有Android的sdk。
4,鸿蒙代码仓库里面并没有看到java相关的liteos代码。

我是一名Android程序员,用我的经验给大家分析一下双方的观点。首先看一下支持自主研发的观点。
1,鸿蒙os是微内核liteos,跟Android的宏内核完全不一样,只是兼容Android的app。

首先我们看下鸿蒙官方提供的鸿蒙架构图
image.png

可以看出鸿蒙是多内核,既有Linux,也有liteOS,还有其他内核等等,那么其他里面有没有安卓相关的呢?我们不得而知,真要较真的话,只能让鸿蒙开发人员出来解释了,毕竟后面还有省略号,另外补充一下,Android不是内核,是操作系统,所以我们刚才说是Android相关的。
2,如果鸿蒙剽窃了Android,谷歌会坐视不理么,肯定起诉华为,当年谷歌就搞死了阿里的YunOS。
此处有个误解,就是Android属于谷歌。Android虽然由谷歌发起,但是作为开源项目,Android属于全人类,不受谷歌的约束,真正受谷歌约束的是GMS(谷歌管理服务框架),现在谷歌已经禁止华为安装GMS了。对于Android,无论华为是否使用,谷歌都无权管理。
那么再聊一聊,当年谷歌是怎么搞死YunOS的。2012年,阿里发布了YunOS,由于和Android极度相似,同时又和拉拢硬件厂商,这相当于和谷歌正面竞争,引起谷歌不满。YunOS并没有开源,所以并没有直接证据表明YunOS剽窃Android。谷歌当时让厂商做出二选一,用了YunOS,就不能在用GMS,不能用GMS,在国外的话手机用不了像YouTube等一系列谷歌的APP,基本就是砖头了,厂商自然就抛弃了YunOS。
3,鸿蒙支持分布式,比Android高级多了,根本不是一回事。

鸿蒙架构图上面我们已经看到了,再看下Android架构图
image.png

可以看出Android是基于Linux内核的,和鸿蒙的多内核确实是不一样的
4,鸿蒙手机开机没有 Power By Android了

上面我们说过,Android是开源项目,不受谷歌管控,但为什么厂商门要加上 Power By Android呢?这还是GMS的原因,谷歌规定了用了GMS就要显示Power By Android,那现在华为已经不能安装GMS,即便用Android的话,也没有义务显示Power By Android。那么这一条并不能判断华为是否使用Android。

分析完了鸿蒙是自主研发的观点,我们再来分析一下鸿蒙套壳Android的疑点。
1,鸿蒙手机出现仿Android系统界面的旧版提示
由于我目前手上并没有鸿蒙手机,无法验证这条信息的真假。如果是真的话,那么鸿蒙确实是用了Android的一些东西,但是是套壳,还是部分借鉴,还需要看代码慢慢分析。那先把这一条放一边,后面我再细讲。
2,鸿蒙的app安装包格式是hpk,解压后直接出现了apk,就是Android的安装包格式。
这里我自己作为程序员,打包了一个hap并进行解压


image.png

可以看到hap解压后确实出现了apk,这可以说明鸿蒙在系统sdk中一定使用了Android的代码,否则打包后不会出现apk。
3,鸿蒙sdk里面有Android的sdk
我们打开鸿蒙的sdk


image.png

可以看到有三个文件夹,先打开java文件夹
image.png

这是鸿蒙2.0的sdk和文档,我打开看了,但是太多就不截图了,可以肯定都是华为自己写的代码。
打开license,
image.png

就是一个许可证
继续打开toolchains


image.png

这里我们明显的可以看到lib文件夹中有android.jar,除了android.jar,像apksigner.jar,d8.jar,sdklib-26.0.0.jar,以及install-assistant文件夹 中的aapt2,d8,dexdump,这些文件都是Android的打包工具,而且根据sdk-26.0.0.jar,可以清楚的得知鸿蒙是基于Android 26也就是Android 8.0进行打包,那么我们这里还可以做一个大胆的猜测,鸿蒙内部有一个Android8.0的"虚拟机",这里为什么加个引号,是因为华为很有可能只是使用了Android的部分代码,删除了很多没必要的功能,添加了一些自己的功能,所以严格来说并不是虚拟机。

4,鸿蒙代码仓库里面并没有看到java相关的liteos代码。
鸿蒙OS的代码仓库地址是https://gitee.com/openharmony 鸿蒙系统代码量很大,大部分都是涉及内核的C/C++的代码,和java相关的liteos我确实没有找到。不过对于一个系统来说,内核是最关键的,既然内核的代码都放出来了,java的代码一定会有,或是暂时没有放出来,或是我没有找到。

image.png

通过以上分析,我们可以初步判断,鸿蒙的内核是自助研发的,但是也使用了Android的技术,下面我们看一下鸿蒙手机sdk的代码,进一步分析。


image.png

我们在鸿蒙sdk看个一个名为abilityshell的包,ability是鸿蒙sdk中最重要的一个类,所有的功能开发都要基于ability,shell的字面意思是壳,在计算机中一般指解释器,我们可以理解为调用了其他软件的代码。我们分别打开AbilityShellActivity,AbilityShellProvider,AbilityShellService,HarmonyApplication,IAbilityShell

AbilityShellActivity
image.png

AbilityShellProvider
image.png

AbilityShellService
image.png

HarmonyApplication
image.png

HarmonyApplication
image.png

IAbilityShell
image.png

代码显示AbilityShellActivity,AbilityShellProvider,AbilityShellService,HarmonyApplication分别继承了Android中的Activity,ContentProvider,Service,Application,这四个组件可以说是Android的灵魂组件,在Android sdk中基石的存在,鸿蒙的确实在此四个组件基础上进行了二次开发。然后我又搜索了Android中很常用的View,令我惊讶的是没有,鸿蒙中并没有View的存在,取而代之的是Component,不仅仅是名字的修改,逻辑重写了。这里给简单解释一下什么是View,在使用Android时,你所看到的一切,比如按钮,列表,视频播放器,相册等等都是基于View实现的,现在鸿蒙去除了View,等于对Android的视图层进行了一次大换血。

看到这里,我觉得对鸿蒙是否是自主研发已经有一个基础的认识,我持支持意见。
理由如下:
1,最核心的内核liteOS是自主开发的,且开源可查
2,使用的Android的代码,但只是为了兼容,已对Android代码进行了推倒性的重构
3,鸿蒙os支持的万物互联协议,虽然还不得知是什么协议,但是并没有在其他os上看到过。

最后,小编还想分享一下自己一些别的对鸿蒙的看法
1,为什么要兼容Android?
在小编看来,目前手机系统中,Android是无法撼动的王者,前有三星,微软想和Android一角雌雄,均以失败告终,华为自然明白其中的道理。我认为最开始,华为并没有打算触及手机os,只是看重了手表,智能家居这些Android还没有垄断的战场。这些市场所需要的操作系统重通信协议,对操作系统本身并没有那么敏感,这也是华为的优势,但是随着谷歌的封禁,华为不得不自己做手机操作系统,时间紧,任务重,兼容Android是最有效的方案。
2,其他手机厂商如小米,oppo,vivo会加入鸿蒙么?
目前来看比较难,一来鸿蒙还没有成熟,贸然使用风险太大,二来鸿蒙app目前只能在只能华为应用市场上上架,这无疑断了手机厂商渠道分发的财路,他们肯定不干,三来手机厂商出海还要看谷歌的脸色,这无疑又增加了风险。但是随着时间的推移,我想华为会指定一套多赢的方案来让各厂商加入。

好了,小编说的就这些了,如果喜欢,请关注一下我,大家一起交流。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容