华为“鸿蒙系统”是在安卓基础上研发的吗?

JavaScript015

华为“鸿蒙系统”是在安卓基础上研发的吗?,第1张

没有官方的「鸿蒙系统」架构资料,所以不好说

但是啊,如果「鸿蒙系统」没有基于「安卓」开发 ,那么鸿蒙系统是如此做到「完美兼容」的呢?甚至「鸿蒙」系统说安卓APP运行效率比在安卓系统上还快

网上传的「科抖」说「鸿蒙系统」使用C|C++开发,那么谁告诉你安卓系统不能使用C|C++开发 …… 如果使用安卓系统做应用或游戏或广告时,你没有使用过C|++,那么是你本人的问题,而且无论安卓还是IOS使用的都是SQLite数据库(一般是SQLite3),游戏开发时还有可能使用JAVASCRIPT或LUA这两门语言…… …… …… …… ANDROID一开始就支持C|C++,更准确地说ANDROID系统的底层本身就是使用C|C++实现的(同样,IOS开发同样需要掌握C|C++开发)

网上传的一些「鸿蒙系统」否定了自己使用「虚拟机」的说法,并且以「虚拟机」批判安卓系统,这就有意思了,因为文章最后的总结出了「大问题」

文章的最后『  总之,华为的“鸿蒙”操作系统,底层(Linux内核、运行库)是用C语言编写的,虚拟机可能采用了C或者C++语言;面向应用开发商的开发环境很可能是Java语言』鸿蒙系统用什么语言?“鸿蒙”和安卓有什么区别?

这是在「自打嘴巴」吗?一个连「虚拟机」都不存在的系统,如何使用「JAVA语言」?「JVM」本身就是「虚拟机」(JVM:Java Virtual Machine(Java虚拟机))……

另一个问题:如果「鸿蒙」系统是使用了「虚拟机」兼容「安卓系统」,而不是基于「安卓系统」进行魔改…… 那么「安卓应用"APK"」通过「ANDROID虚拟机」运行在「鸿蒙」系统,那么有可能比跑在「安卓系统」本身上更快吗?手机的硬件能支撑「系统虚拟机」(比如常用的 Parallels Desktop、virtualbox等)的运行吗?大家都知道「系统虚拟机」虽然可以在A系统上跑B系统,但是代价也非常昂贵,不仅仅占用大量的「内存」,而且运行效率低下,即使是目前最好用的Parallels Desktop,也完全没有装双系统或者干脆重新安装全新的系统「效率好」

现在网上的文章看似将「鸿蒙」和「安卓」区分开了,但实际上经不起推敲,问题百出,给人存心「骗人」的感觉

…………………………………………………………………………………………………………

如果你还能打开ANDROID官网,你会从里面找到非常非常详细的资料,可以将「安卓系统」看得清清楚楚,「安卓系统」哪部分是「开源的」哪部分是「不开源的」,「安卓系统」各层使用的「库」是基于哪门「语言」开发的及「安卓系统」的所有的「库」信息

…………………………………………………………………………………………………………

「鸿蒙系统」目前一切皆是「谜」

等着官网公开「鸿蒙系统」的资料

…………………………………………………………………………………………………………

如果官网连「鸿蒙系统」的资料都不愿意「公开」的话,这就显得很奇怪了,既然已经将自家系统捧上天了,为什么不让人看一看它的「资料」呢?而且这对于日后培养「鸿蒙系统开发程序员」也是非常「必要」的,一个只有对自己使用的「系统」有个清楚的「认知」,在开发时才能「找到方向」…… …… 没有人能在「一无所知」的系统上做好「开发」,并且「一无所知」会令程度员「开发兴趣」直线下降…… …… 「程序员」本来就是靠「好奇心」驱动的,「程序员」就是不断的学习不断的思考不断的尝试然后完成「开发」…… …… …… …… 只想依靠自己公司里的员工来开发「应用」是十分不现实的,所以「很多资料」的「公开」是非常有必要的

…………………………………………………………………………………………………………

这段对话很吸引人,至少「安卓系统」目前不支持「电脑」,或者说「安卓系统」对于电脑而言「太弱」,苹果也是手机使用IOS而电脑使用MACOS两套操作系统,微软曾经也开发过WINPHONE系统(微软的手机系统,跟微软出的电脑用的的WINDOWS系统完全不同)

同样这段话令人怀疑「它」的「真实性」…… 「万能操作系统」那种东西可能存在吗?一个弄不好就是「样样不行操作系统」了…… 因为电脑所用的操作系统与手机所用的操作系统,区别非常非常地大…… 而像智能穿戴和汽车明显又是完全不同的操作系统,智能穿戴重点在于「小巧」(比如APPLE WATCH使用的Watch OS),而车载系统明显是完全不同的东西,虽然目前市场上有CarPlay和Android Auto,但说实话并不理想,因为理想的车载系统需要将智能硬件,自动驾驶、云服务、IOT等技术深度结合,而索尼推出的XAV-AX8000完全就是娱乐系统(东西好是好,但感觉已经完全偏离普通操作系统的方向了,更像是一款娱乐软件,当然因为功能强大所以叫娱乐系统…… 兼容CarPlay和Android Auto)…… 无论如何,小生都不认为普通的「操作系统」能实现「车载系统」,「车载系统」的功能完全与「汽车」深深地绑定在了一起:比如导航、娱乐、警报、电话、电动车剩余余量、汽油车剩余油量和导航系统的匹配、联动等…… 或者还需要自动驾驶、查看周围路况、数据交互、云存储等功能

…………………………………………………………………………………………………………

一个系统能同时兼容电脑、手机、汽车、智能穿戴,这是件非常非常「不可思议」的事情…… …… 想一想如何才能将庞大的电脑操作系统放到小巧的智能穿戴设备上?想一想手机硬件同电脑硬件存在的「巨大差距」

总之,小生是被「鸿蒙系统」给「雷」到了

开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(HarmonyOS)简介及开发环境搭建

开发前的准备:「鸿蒙开发 1」华为鸿蒙应用集成开发环境DevEco Studio安装和设置

了解鸿蒙应用开发的基本开发流程:「鸿蒙开发 2」第一个华为鸿蒙(HarmonyOS)应用程序(App)

本章目标:

1 了解华为鸿蒙应用开发的可视化(低代码)方式

2 通过构建一个简单的具有页面跳转功能的应用

低代码开发方式,即通过可视化界面开发方式快速构建布局、编辑UI界面,可有效降低用户的上手成本并提升用户构建UI界面的效率。

1 打开DevEco Studio,创建一个新工程,选择支持Phone / Tablet / Wearable(手机 / 平板 / s可穿戴)的模板,我们在此直接选择Empty Ability

Project name工程名称填SuperVisual

Development mode开发方式选择Super Visual

其它的可以使用默认设置,点击完成,进入编辑界面

1 在Project(项目)窗口,删除工程运行默认的入口文件夹:“entry >src >main >js>default >pages >index”文件夹

2 在Project窗口,选择工程中的“entry >src >main >js >default >pages”,单击鼠标右键,选择“New >JS Visual”

JS visual name填first,点击完成,进入编辑界面

创建完成后,可以看到“entry >src >main >supervisual>default >pages >page >page.visual”的文件目录结构

3 第一个页面内有一个容器、文本和一个按钮,通过Div、Text和Button组件来实现

(1)分别选中first.visual画面中的Text、Div组件,单击鼠标右键,选择Delete删除

(2)选中UI Control中的Div组件,将其拖至画布

点击右侧属性样式栏中的通用样式图标(General),设置Div组件的高度Height为100%,使其占满屏幕

点击右侧属性样式栏中的样式图标(Flex),设置Div组件的FlexDirection样式为column,使Div的主轴垂直;设置Div组件的JustifyContent样式为center,使得其子组件在主轴上居中显示;设置Div组件的AlignItems样式为center,使得其子组件在交叉轴上居中显示

(3)选中UI Control中的Text组件,将其拖至Div组件的中央区域

点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hello World ”

点击右侧属性样式栏中的通用样式图标(General),设置Text组件的宽(width)为100%,高(height)为100px

点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为60px,使得其文字放大;设置组件的TextAlign样式为center,使得组件文字居中显示

(4)选中UI Control中的Button组件,将其拖至Text组件下面

点击右侧属性样式栏中的属性图标(Properties),设置Button组件的Value属性为 “ Next ”,

点击右侧属性样式栏中的通用样式图标(General),设置按的宽(width)为40%,高(height)为60px

点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为40px

至此,第一个页面创建完成

我们可以在预览窗口中看效果,点击右侧边栏的Preview打开预览窗口

1 在Project窗口,选择工程中的“entry >src >main >js >default >pages”,单击鼠标右键,选择“New >JS Visual”

Visual配置界面,JS visual name填second,回车(Enter键)或者点击完成,进入编辑界面

2 第二个页面中有一个容器和文本,通过Div、Text组件实现,现在编辑器已经为我们创建好了,我们就来修改下它们的属性(你也可以删除原有的自己创建,具体步骤参考本章第二节“二 创建第一个页面”)。

选中Text组件,点击右侧属性样式栏中的属性图标(Properties),设置Text组件的Content属性为 “ Hi,I'm always here. ”

点击右侧属性样式栏中的通用图标(General),设置组件的宽(width)为100%,高为60px

点击右侧属性样式栏中的样式图标(Feature),设置组件的FontSize样式为36px,TextAlign样式为center

这样我们的第二个页面创建成功了

1 在Project窗口,打开工程中的“entry >src >main >js >default >pages >first >first.js”, 导入router模块,页面路由router根据页面的uri来找到目标页面,从而实现跳转。示例代码如下:

2 打开或者切换到first.visual页面,选中画布上的Button组件,点击右侧属性样式栏中的事件图标(Events),鼠标点击Click事件的输入框,选择launch事件

3 在预览窗口中查看项目效果,点击Next按钮后发现我们的页面成功跳转了。

到此,本章的目标就完成了。