Harmony OS 2.0 与 Android 的困惑

2021-04-12 10:15:26 浏览数 (1)

概要

谷歌如何限制华为?停止商业合作,(1)禁用GMS套件 (2)不能获取更新与适配优化

禁用GMS套件的影响?主要影响海外市场,外国一般都用GMS全家桶,很多软件都是基于GMS的(其实华为也有HMS)。

不能获取更新与影响?(1)Android 11 不能用 (2)后续华为的新手机新系统不能用Android 商标 (3)Android 新特性,如果华为想拥有,要么从AOSP上主动拉取新代码,要么自己开发。

鸿蒙如何规避谷歌限制? (1)使用AOSP 10 及 Art,系统后续会逐步下掉对AOSP的依赖。(2)开放开发者平台及开源OS,引导主流App迁移,打造Harmony生态;(3)兼容Android apk;平滑且几乎无差异的视觉交互;...

普通Android APK想运行在Harmony OS系统上,需要做什么适配吗?不需要。将来需要做适配吗?鸿蒙系统之间可以实现丰富的交互场景,可以基于这些需求点进行开发适配。

鸿蒙OS的特点?分布式的、可裁剪的、强调安全的。

鸿蒙系统与Android 系统的区别?

最核心的区别是鸿蒙对标的是谷歌下一代操作系统,Fuchsia。

(1)Harmony OS 的内核是 Linux 微内核 鸿蒙内核(开发中),Android 是基于Linux内核的。

(2)Harmony是面向全场景,分布式的OS。

(3)Harmony OS 可以按需裁剪(到十几M),运行在手机,电视,手表及其他loT设备。

(4)视觉方面,Android 开发使用Java xml,Harmony开发不仅支持Java xml,也支持js css。

(5)Android 中除了游戏开发,其他App基本都是View嵌套View,Harmony应该是使用Surface绘制的

(6)...

详细描述

Google 如何限制华为?

在这里要阐明AOSP,Google Mobile Service(GMS),Harmony OS 2.0 之间的关系。

首先,AOSP,Android Open Source Project 使用 Apache2.0 许可,是Google 维护的开源项目,任何人都可以用,并且能够在商业场景使用,或者修改成闭源的,这能为Android 生态吸引大量厂商。Linux 基于GPL 协议,使用它的项目自己 子子孙孙都需要遵守GPL协议。所以Linux 把Android 从Linux分支中删除了。

其次,Android 是Google 的商标,必须得到 Google 授权,实现一些兼容性方面的东西,才可以使用。现在Google 与华为停止了商业合作,所以不能继续用“Android”的字眼。

第三:GMS(Google Mobile Services,谷歌移动服务)是闭源的。国内由于特殊的原因,本来就无法使用GMS。国外的产品,是基于GMS 自成生态的,定位,通知等服务,也是由GMS提供的。所以停止商业合作,影响的是华为的国外市场。

第四:Harmony OS 2.0,是华为自主研发的,鸿蒙系统是基于物联网的分布式系统。这个系统可以运行.apk文件,也可以运行.HAP文件(基于鸿蒙系统开发的文件)

1.禁用Google Play(GMS套件)

2.禁止Android 系统的更新

禁用Google Play的影响?闭源的Google Mobile Service 用不了了。

在开源的基础上,谷歌自己开发维护了一套叫做闭源的GMS(Google Mobile Services,谷歌移动服务)的东西。

它就是很多APP 的基建设施,像“水电煤”一样重要。比如说你的 APP 要推送一条通知给用户,就必须用 GMS,要使用定位服务,也要用到 GMS。

谷歌自己的全家桶都是基于 GMS 的,事实上只要在安卓上开发应用,几乎所有 APP 都绕不过 GMS。

这次的“暂停商业合作”,就是不允许华为使用 GMS 了,同时华为也不能即使获得最新的安卓更新、定制适配优化等,因为这些都是属于商业合作

国内的用户,完全感受不到这项禁令对自己的影响,GMS 在国内也是一直没法使用的状态。所以才有了MIUI,EMUI, OPPO,VIVO 这些手机厂商。

Google 停止商业合作后带来的限制:Android 商标与后续的更新适配,华为已无法使用;

海外市场的手机搭载的GMS套件,也无法使用,等于把华为踢出了GMS生态,缺乏这些服务的华为手机,难以被用户认可,华为进而失去大量的海外用户。

华为同时提供了HMS服务。

华为也不能获得最新的Android 更新,定制适配优化?

谷歌暂停和华为的商业合作,所以无法更新Android 11。

其实华为还是可以继续使用AOSP 10.0的

简单来说,AOSP是一个开源的项目(Android 使用 Apache2.0 许可),虽然它的维护者是谷歌公司,但任何人都可以使用、加工,而谷歌不会干涉

鸿蒙系统如何兼容.apk格式的App?

鸿蒙为什么要兼容Android ?

不兼容初期难以推广。

鸿蒙系统为什么还能运行Android 的apk?

详情见:harmonyOS_2.0.jpg

1.目前的远程虚拟机中有Linux和Android Runtime的存在,请问是使用了AOSP的东西吗?如果是,对应的版本是多少?答:AOSP 10.0

2.目前APK应该是运行在Android Runtime里的,HAP好像也是如此,能否确认呢?

3.答:当前鸿蒙是双框架,运行在ART虚拟机中,但是上层已经封装了鸿蒙的接口,在后续的鸿蒙版本中可以逐步解耦AOSP,直至单框架完全不依赖AOSP,AOSP是10.0的。

4.鸿蒙的开发工具Dev Eco是基于什么开发的?:IDE是Idea开发的。 IDEA官网写着用Java开发的。

使用升级到鸿蒙OS 2.0 的测试机Huawei Mate 30 Pro ,连接ADB,使用 uname -a 命令,查看系统名称。

鸿蒙内部包含了AOSP,下列法律信息也佐证了这一点。鸿蒙应该是改了android.xxx 这个包名的。

设置 → 关于手机→ 法律信息 → 开放源代码许可

设置 → 关于手机→ 法律信息 → 系统WebView许可

升级到鸿蒙系统前后,手机的系统架构如何变化?

鸿蒙 OS 仅仅只是系统底层有所更改,也就是说原先华为手机所用的安卓 EMUI 现在换成了鸿蒙 OS 2.0 EMUI。

鸿蒙与Lite OS 的关系?

华为Lite OS是华为针对物联网产业推出的轻量级物联网操作系统,轻量级、低功耗、互联互通、组件丰富、快速开发……

鸿蒙OS

鸿蒙OS面向未来、面向全场景、分布式。在单设备系统能力基础上,鸿蒙OS提出了基于同一套系统能力、适配多种终端形态的分布式理念,支持多种终端设备。

二者相当于是Linux发行版与Linux内核的关系。

鸿蒙中的微内核是做什么的?

运行安全服务。无更多其他资料披露。除了Lite OS 和Linux 内核,鸿蒙内核还在开发中,用作什么也未有资料显示。

基于鸿蒙进行开发

https://developer.harmonyos.com/cn/docs/

https://www.harmonyos.com/cn/develop

鸿蒙不仅支持Java 开发,也支持使用CSS JS 开发(DevEco 工具 需要配置Node.js环境)

左图为Java 开发,右图为使用CSS JS 开发。

相似点

1.项目结构、IDE工具与安卓开发有很大的类似之处,不排除都是JetBrains开发的缘故

2.鸿蒙中的Ability设计,与Activity也有异曲同工之处,都是类似状态机的状态转移模式。实际上具体时机还有区别。

3.同时,鸿蒙在Java开发环境下,可以使用XML开发视觉,但并不是与Android 相同的布局Layout。

4.鸿蒙的线程通信机制,也是Handler。但是Handler并不是安卓独有的线程通信机制,他是基于Java的通知机制。

5.打包成功之后,鸿蒙也有类似adb的命令,安装应用包(真机需在开发者帐号申请.p7b 等文件进行签名,否则无法安装:https://blog.csdn.net/weixin_52542088/article/details/111307435)

6.鸿蒙有类似AndroidManifest.xml 的配置文件,config.json,用于描述应用组件的关系和权限等各项配置信息。下图是解压后的hap文件,因为没有走签名流程,所以无签名信息

7.构建的中间产物,包含class.jar与class.dex。最终产物.hap文件解压后的结构如右图所示。

个人理解这些似曾相识的设计,正是为了让Android 的开发者,快速迁移到Harmony生态里去。

差异点

1.在视觉开发方面,鸿蒙不仅兼容旧的开发习惯,包括xml布局,更推荐使用js开发。大佬们认为基于xml的视觉开发是低效的。

2.鸿蒙提供的子系统,以及项目组织方式,是基于组件化的思想设计的,便于裁剪。

3.js css 的开发方式,更接近于小程序开发。

4.视觉开发方面,Android的View,除了游戏开发,一般都是View嵌套View的。鸿蒙的视觉使用(graphic_lite)。依然使用Android开发的app,不受此影响。

Android 与 鸿蒙的本质差异(个人理解):鸿蒙是分布式的OS系统。

0 人点赞