重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
没有官方的「鸿蒙系统」架构资料,所以不好说
龙安ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
但是啊,如果「鸿蒙系统」没有基于「安卓」开发 ,那么鸿蒙系统是如此做到「完美兼容」的呢?甚至「鸿蒙」系统说安卓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)…… 无论如何,小生都不认为普通的「操作系统」能实现「车载系统」,「车载系统」的功能完全与「汽车」深深地绑定在了一起:比如导航、娱乐、警报、电话、电动车剩余余量、汽油车剩余油量和导航系统的匹配、联动等…… 或者还需要自动驾驶、查看周围路况、数据交互、云存储等功能
…………………………………………………………………………………………………………
一个系统能同时兼容电脑、手机、汽车、智能穿戴,这是件非常非常「不可思议」的事情…… …… 想一想如何才能将庞大的电脑操作系统放到小巧的智能穿戴设备上?想一想手机硬件同电脑硬件存在的「巨大差距」
总之,小生是被「鸿蒙系统」给「雷」到了
(杭州健澜 科技 有限公司编辑:张景领 全文约4390字,预计12分钟可以读完)
华为的鸿蒙(Harmony OS)系统正式发布了,在发布会之后意料之中的出现了两极分化的评论趋势,说什么的都有,像什么忽悠人、改别人的、手机不能用等等,但如果你仔细去分析发布会上有关鸿蒙系统的全程内容,你会发现它和大多数评论中的那个“系统”是不一样的,大家不要盲目去诋毁“鸿蒙系统”,同时也不要肆意吹捧,否则很容易变成“捧杀”,在参与讨论之前,我觉得大家有必要先搞清楚,它是一个什么样的系统。
在发布会上,他们用了很多专业的名词进行功能解释,我相信这是大多数观众听不懂的,甚至大多数媒体的编辑也听不懂,在这种背景下,不管是吹捧的,还是诋毁的,都没在靠谱的频道上。
以下为我个人对鸿蒙(Harmony OS)系统的理解,现在就分享给大家:
目前我们正在使用的各种智能设备,如:手机、PC电脑、平板电脑、智能手表等,它们全都有自己的系统,即使是同一个品牌下的产品,也会有专门为它定制的系统,如苹果公司:
手机 iOS
电脑 MacOS
手表 watchOS
电视 tvOS
平板 iPadOS
虽然苹果公司将它们之间的互动做得很好,但仍然需要大量的人工来编写和维护不同的系统,站在开发者的角度来看,可能需要针对不同的平台调整不同的架构和UI,这是一个比较耗时的工作。
在使用的过程中,不同设备之间的系统需要去判断你的操作,然后根据不同的平台,不同的操作来给你调用不同的程序来执行,对苹果产品来说,自家产品之间互通体验还算不错,但如果和安卓设备或windows设备之间互动就显得麻烦很多,早期用苹果手机的人,想把照片拷贝到电脑上都很费劲,甚至这是很多苹果手机用户需要学习的第一课“如何把照片复制到电脑上”。
对Android系统的设备来说就更别提了,除了系统的碎片化之外,不同厂商之间都有自己的规则,没有一个统一的标准,再加上乱七八糟的第三方APP,导致安卓设备体验极差,相互之间想要达到完美契合的程度,需要比苹果付出更多人力和时间,所以很多大 游戏 或是应用,都是最新上架苹果商店,更新也是苹果设备先更新,因为相对来说,苹果系统更容易维护。
Android系统现在看上去还不错,但其实它有个很狼狈的过去。我学过软件开发,学会网站编程,学过数据库等N种编程语言,甚至稍微有那么一点点开发经验的人都会知道,如果你去修改一个别人的程序,如果这个程序一直在被不同的人,不同的时期维护,这里面就会出现大量的垃圾代码。
有垃圾代码不可怕,可怕的是谁也不敢动,不敢删。这些垃圾代码虽然看上去没用,但说不定某一条就与另一个指令相连,如果你删了就会产生连锁反应,甚至会导致系统崩溃,所以比较稳妥地做法就是,在不改变原有代码的情况下,把自己想要的功能再加进去,备注上自己的名字。
这会造成什么问题呢?我们举个例子:
你想从16楼到1楼拿快递,原本只要从固定的电梯直接到1楼即可,也就30秒不到,结果你从家出来发现楼道有30个电梯,上了一个之后发现它只到13楼,你只好下来再进另一个,运气好能到1楼,运气不好估计还得在6楼停一下,运气最差的情况你可能坐了20个电梯都还没到1楼。
这就是垃圾代码带来的副作用,现在的Android就是这个情况,大家都知道有垃圾代码,也知道它会影响运行效率,但谁也不敢动,或者说谁也不会去动,都不想承担系统崩溃的风险,这是人之常情。
华为的鸿蒙系统提出一个“微内核”的概念,其实这个谷歌新系统Fuchsia OS就是微内核的系统,它们希望用这个全新的系统来替代Android这种老弱病残的现状,因为它身上的顽疾太多了,还是没药可救的那种。
这种“微内核”的系统最大的好处就是,可以让开发者提交的应用,最方便、最快地适配所有硬件,这对消费者来说也有非常大的好处,你可以第一时间更新你手里的所有智能设备,类似苹果每年的大版本系统更新,几乎全球的用户都可以同时更新,这是国内Android用户这辈子都体验不到的,所以我们只能寄托于新的系统。
Harmony OS 鸿蒙,基于微内核的全场景分布式OS。
“基于微内核的全场景分布式OS”这句话是重点,它不是一个专门为单独设备准备的系统,它是一个平台式的系统,可以通过中心网络派发资源和功能,所有功能又可以单独使用,灵活多变但统一和谐。
我们再来深入地拆解一下鸿蒙系统,它与普通系统最大的不同之处在于,它在运行程序的一开始并不是直接执行所有内容,而是先判断你是什么设备,然后直接走单独的通道去执行,而所执行的这些程序,不管你是电视、电脑、还是手机,它们用的都是同一套系统,只是在最开始的时候选择了一下设备,这个系统并不是给某种设备单独定制的,而是一个通用的系统。
这样做的好处就是,每次你需要维护的时候,只需要把第一层的东西做升级,下面的底层是不用动的。这就好像系统是一台CD机,不管谁家的CD都可以在我这里播放,只要你按统一的Copy程序做的光盘就行了,如果你想听其他人的音乐,只要换张CD即可。
而以往的系统就比较麻烦,如果你想换一张CD,可能需要针对这张CD去制造一台CD机,最差也得把这台CD机修改成可以播放的样子。
除了设备间的独立之外,它会让硬件本身的功能成为系统可以调配的东西,比如手机上的摄像头,它甚至可以通过系统间的调度被电视或手表使用,因为它们用的是同一个系统,所以具备了相互通信的能力。
你们有没有看过《速度与激情》这部电影,它里面的天眼系统其实就是在调配所有生活周边的摄像头来获取画面,从而准确地追踪到目标人物。虽然鸿蒙还没有这么高级,但它已经是个雏形了。
相信很快我们就可以用家里的电视屏幕当大疆无人机的显示屏用了,这会给我们带来无限的 娱乐 空间。
当然要实现这种功能上的调用需要二个条件,第一个就是必须是采用了鸿蒙系统的硬件;第二就是必须登陆了相同的华为账号。这里面涉及到了另一个生态的问题,我们后面再讲,还是先说系统。
可以单独调配资源的另一个好处就是,它可以像我们现在的智能路由器一样,根据你正在做的事情来给你不同的性能。如果你正在玩 游戏 ,它可能会保证你玩 游戏 的同时,再去帮你升级一下系统,但它还不能影响你的网速;如果你正在看视频,在这种几乎不需要性能的场景时,它可能会在后台帮你彻底杀毒或自检一次,这种优化能力其实现在的手机也可以做到,但这个逻辑本身就是吃性能的,所以当它以系统的一部分出现的时候,才是最完美的。
这功能其实你是看不到的,但从其它地方你也可以间接发现,如:费电小了、发热小了、打开东西更快了、不用老去清理缓存了,蓝牙耳机玩 游戏 或许都没延时了(我发现了一些端倪,他们已经在做蓝牙耳机玩 游戏 降低延时的测试了,EMUI 10.0见)。
至于系统安全性方面,我并不是专家,所以在这里没办法给大家更深度的普及,但我可以说一下我个人的理解。鸿蒙系统这类微内核的系统,本身是非常小巧的,代码量也不大,所以它可以用到更深度的安全级别措施。
另外它天生就没有root权限,也就是说不会给任何第三方应用或个人系统最核心的权限,这也算是最大限度的保证安全的措施之一了。可能很多人说手机不能root就没什么可玩性了,但我个人认为没有是对的,因为这样可以最大限度的保证系统的安全以及流畅性。
可能你们还没注意到,很多手机第三方主题、字体、甚至动态壁纸,都会明显影响手机的流畅性,这里面字体的影响是最大的,很多莫名卡顿的现象换成系统默认字体立刻就好了。
我们来看一下鸿蒙OS的整体结构,其实它仍然保留了Linux内核,这样一来就可以直接兼容安卓应用,这在初期是非常重要的,毕竟不能让用户买回来没得用,在这段过度期中间,华为方面肯定会联合各大主流厂商定制属于鸿蒙OS的专用APP,这才是发挥它性能的最佳方式。
也就是说,在兼容安卓APP的这个时间里,它的威力还没办法完全施展出来,当那些采用“方舟编译器”开发的应用上线之后,才能发挥它至少八成以上的实力,当鸿蒙OS的生态建立完全时,才可以发挥接近100%的实力。这也是我为什么说,鸿蒙OS需要时间来沉淀,它不可能一上来就是满血状态。
我们可以理解为,现在所有用“方舟编译器”开发的应用,都可以在鸿蒙OS中发挥最快的效率。
当使用方舟编译器的应用足够多时,或者说90%以上常用APP都有方舟编译器的版本时,鸿蒙OS的底层会完全抛弃Linux内核,只保留鸿蒙微内核,这个时候才是鸿蒙(Harmony OS)系统正式独立且完全独立的日子,这一天才是它的真正崛起的日子。
为了早日实现这一天,其实华为方面下了很多功夫,甚至他为开发者提供了非常舒服的便携环境,很多基础操作都可以直接用拖拽的方式来完全设计,模块化编程是未来的趋势,我这种曾经只会手动敲代码的老古董已经被淘汰了。
它可以让你一次开发,同时适配所有搭载了鸿蒙OS的设备,这是无数安卓开发人员的梦想,只可惜在安卓系统上已经没办法实现了。
我估计后面华为会为开发者提供不错的奖励措施,有奖励,有平台,有目标,有未来,生态成型基本上就是时间问题。
【产品的诞生】
现在的鸿蒙OS是可以用在手机上的,但支持的APP并不是很多,而且生态还没有建立起来,这些都需要时间,之前我和瓦力读者说是2年时间,这与发布会上华为方面的规划基本是吻合的。
现在拿出鸿蒙OS的目的很简单,告诉大家鸿蒙OS并不只是PPT,它已经是完整的系统了,顺便让那些喷子闭嘴。另一个原因是,它的电视用上了鸿蒙OS,没必要藏着掖着,同时也是给那些应用开发者一个定心丸,让他们可以放心为鸿蒙OS开发应用。
这里有一个“因素”很重要,如果明天美国不让华为用安卓系统了,鸿蒙OS就必须提前应用到手机上,这是一个没办法的备选方案,至少可以用,虽然和常规安卓没什么大区别。
但如果换了另外一个厂商,如小米、OPPO、vivo等,这几乎是毁灭性的打击,所以防患于未然是必须要做的。但小米他们暂时没办法弄自己的系统,因为这需要很多钱,很多人,很多时间,即使有一天美国禁止全中国的手机厂商使用安卓系统,其实鸿蒙OS也可以给大家用,与其说它是华为的应急方案,倒不如说是全中国手机厂商的应急方案,其实如果不是万不得已,华为也不想这么早就把鸿蒙OS用在手机里,时间点太靠前了。
到了2020年,鸿蒙OS会被用到笔记本电脑、手环、手表中,2021年才是应用到手机上的最佳时机,那时候有没有安卓系统都已经无所谓了。这样做也是为了先把生态和周边做好,手机出来的时候,可以直接整合,用户上手就是完全版本的体验,这也是最稳妥的方式。
如果你对手机系统或是手机行业有一些了解,相信看完我上面的分享之后应该明白了,鸿蒙(Harmony OS)的目标根本不是Android,而是谷歌正在开发的Fuchsia OS,以及苹果正在部署的相应系统。
所以那些经常用Android来和鸿蒙(Harmony OS)说事的人,应该换换思路,是时候接轨下一代系统了。
开发前可以了解下鸿蒙: [鸿蒙开发 序]华为鸿蒙操作系统(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按钮后发现我们的页面成功跳转了。
到此,本章的目标就完成了。