十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
之前测试过使用华为DevEco开发智能电视应用。前几天华为发布了手机的测试版,不能免俗,抓紧尝试一下。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的全南网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
手头没有华为手机测试系统,现在试一下开发环境跑模拟器感受一下。
以前DevEco里是没有手机选项的,现在该选项可以看到了:
这里测试一下Business Card Ability(Java)开发。
DevEco和Android Studio一样基于开源的Idea版本开发的,其结构与安卓开发环境非常像,熟悉安卓的小伙伴应该能很快上手。
入口程序是一个MyApplication,从AbilityPackage继承。
它首先找到了连接的荣耀手机,但这个手机不是鸿蒙系统。
编译是成功了,但提示设备无法使用:
点击Tools - HVD Manager
首先提示登陆华为账号,登陆后,选择一个模拟器运行:
启动以后长这个样:
点击设置,先看看关于:
上面显示大大的HarmonyOS。但感觉画面很模糊,不知道模拟器到底是运行在本地的,还是云端的。但DevEco上显示是Remote Device字样。
鸿蒙OS版本号 2.0.0 Developer Beta1。
再点运行,在指定的模拟器上运行程序。
不过仍然运行失败:
鸿蒙OS版本与平板是一致的,
程序终于跑起来了:
看起来安卓程序好像真能在鸿蒙直接运行,安装一个快手试试:
还真能看:
我真分不清这是安卓还是鸿蒙了 。
鸿蒙系统使用体验:鸿蒙系统相比于安卓系统要更简洁,集中体现在第三方应用内存占比缩小,开机系统运存占比下降等方面。单从系统稳定性以及成熟度来看,当前鸿蒙系统已经具备大范围推送的基础。
体验之后优缺点如下:
1、华为鸿蒙系统的优点并非系统优化,而是分布式操作。与安卓、iOS系统不同,搭载鸿蒙系统的手机并不像是传统意义上的手机,而是变成了一个中控枢纽,可以无缝连接平板、电脑,数据与操作同步体验相当之令人惊艳。
搭载鸿蒙系统的华为手机还能与智能穿戴设备以及车机相连。升级到鸿蒙系统的手机已经不能算作是传统意义上的手机了,更像是一个多功能遥控器,可以控制生活中出现的智能设备。
2、生态是鸿蒙系统最大的缺点,升级到鸿蒙系统后,原以为可以用上不少基于鸿蒙系统框架的应用,实际体验下来发现系统是鸿蒙系统,但是应用多数还是安卓应用。大多数的应用开发商,并没有在第一时间针对鸿蒙系统开发相应的软件。
虽然鸿蒙系统可以兼容安卓应用,但不是真正用心适配的软件,使用起来总是有些不稳定,小卡顿啥的很难避免。担心的事随着鸿蒙系统大范围推送,后续谷歌很可能会对其展开封杀,如限制封锁安卓应用,不让搭载鸿蒙系统的华为手机下载使用。
鸿蒙系统的支持
1、智能硬件
HarmonyOS为智能硬件开发者提供模组、开发板和解决方案。同时,HUAWEI DevEco将为HarmonyOS设备带来一站式开发环境,支持家电、安防、运动健康等品类的组件定制、驱动开发和分布式能力集成。
在开发过程中,不论设备是有屏还是无屏,HUAWEI DevEco都可提供一站式开发、编译、调试和烧录,组件可以按需定制,减少资源占用,开发环境内置安全检查能力,开发者在开发过程中也可以进行可视化调试。
2、开源
HarmonyOS将源代码捐赠给开放原子开源基金会进行孵化,项目名称为OpenHarmony。面向RAM在128KB~128MB的IoT智能硬件源代码已经开放;计划在2021年4月前,RAM在128MB到4GB间的终端设备,包括轻车机及带屏音箱等在内的设备均可以获得相关的开源代码。
以上内容参考 百度百科-鸿蒙系统
鸿蒙对标的是安卓系统,而且鸿蒙为了兼容现在的设备,鸿蒙一定需要兼容安卓的某些特性「 比如adb 」,要不然现在的所有设备使用上就有问题。
OS和内核是两个东西,鸿蒙的内核可以是Linux,也可以是华为自己开发的内核,看代码命名是Liteos_a,这个是一个实时内核,实时内核和非实时内核有非常明显的区分,我们正常使用的windows,Linux等都是分时系统,每个任务都有一个时间片,实时系统调度算法和分时系统是不同的,像嵌入式系统freertos,rtt是实时系统。从这里隐约可以看出来华为的对手并不是Linux。
ps:Linux内核也可以打上实时补丁。
如果鸿蒙VS安卓
安卓开发的应用需要重新开发,这部分不仅需要华为方面的努力,还需要产品公司的人去学习鸿蒙的api,一款应用可能需要ios、安卓、鸿蒙三个系统的开发人员,因为现在世面上的鸿蒙手机还没有,所以这个技术积累还是很少的。
厂商愿意不愿意使用鸿蒙,这个才是最大的问题。
我们知道,手机芯片原厂释放芯片的同时也会释放SDK包,如果需要占领手机市场,那就需要搞定这些芯片原厂,适配他们的芯片,适配他们的外设,虽然安卓发展到现在已经很多个版本了,但是依然每天有很多问题需要解决。
安卓发展到现在,也出现了很多新颖有用的特性,比如我之前在视频里面提到的,Android 9之后有一个特性 「 就是不需要关闭WIFI也能打开手机热点 」, 这是一个非常有效而且有用的功能,这个功能可以让信号覆盖不到的地方组网,而且安卓的很多现有特性对用户来说是非常重要的,用户会为了鸿蒙而抛弃体验吗?
鸿蒙想达到安卓,我觉得路子还是非常长。 但是 Liteos是非常值得期待的。
因为Liteos要打的可能不是Linux而是一些嵌入式RTOS,比如Freertos。
但是这也会遇到同样的问题,芯片厂商愿意不愿意花精力和心思去做这个事情,比如说Nordic,这个是一个非常典型的蓝牙芯片,它有自己的app,协议栈,如果让他们在他们的芯片上重新开发Liteos,不管从稳定性,可量产性,都还是未知的。
我之前做的ESP32,用的是Freertos,如果Liteos想占领IOT市场,就需要在这方面下功夫,比如让厂商在芯片上移植Liteos,相对于搞定高通这样的芯片厂商,搞定乐鑫这样的国产芯片相对容易多了。
鸿蒙的出来,在学生和开发者之中是比较轰动的,学生和开发者都喜欢大牛,喜欢新鲜的技术,而且学生和开发者大部分有情怀,但是鸿蒙想靠开发者和学生去一统江湖,有困难,因为资源在厂商手里,不是在开发者和学生手机。但开发者和学生的作用却很大,他们可以移植Liteos到不同的芯片上去,扩大Liteos的使用,提升Liteos的稳定性和扩展性。
13年,那时候,平板行业非常火热,然后也有一家国内大企业想吃一下这块蛋糕,跟方案公司合作,但是后来没有量产,一个原因是芯片原厂技术支持不到位,出现的问题比较多,做产品跟做技术不一样,做产品的周期非常短,不可能原地等待原厂研究很长时间。
为啥Liteos使用驼峰命名?
这个就是一个习惯的问题,并不能说谁好谁不好,但是如果以前看底层代码都是下划线的形式,突然变成大写,第一时间就有点不习惯。
缩进方式只能用空格缩进我觉得这是一个提升,tab键因为在不同的软件中会显示不同,总是需要设置才能显示正常,也算是制定了好的标准。
中文注释
在每个文件的前面,会有一串英文解释这段代码的作用,有点疑问,为什么不直接写成中文。毕竟中文的话,阅读起来会相对轻松一些。
其他
其他也说不出个所以然,大家看到鸿蒙应该都会有自己的看法,也想知道要不要跟着华为走,现在要不要开始学习鸿蒙,我觉得这些都是太过于着急了。
那天直播结束,我们就联系了一个朋友,说要买点海思的芯片,得到的消息是芯片已经是断货状态,我猜测,可能已经有人开始操作了。
看代码可以看到其实很多技术是相通的,而且因为是中国人维护和开发,文档和交流上会方便很多,我觉得没必要紧张,该怎么学习还是怎么学习,至少我觉得可以说明一点,到目前位置,脱离C语言来写内核还不太现实,好好学习C语言,学习操作系统,不说其他的,学习51单片机也差不到哪里去。
单从技术上讲,开发一个单独的操作系统内核并没有想象中的那么困难。网上搜一下 至少能找到几十个甚至上百个OS内核实现,虽然绝大多数只是玩具级别的,但很多都是麻雀虽小,五脏俱全,基本的功能都有实现。
先说下自己的一些经历吧。
我在几年前曾经从零开始写过一个简单的操作系统内核,实现了基本的boot, 内存管理,进程管理,中断管理,IPC,简单的文件系统,简单的磁盘驱动,键盘驱动,简单的终端等基本功能,还实现了一个简单的调试器,支持断点等基本功能。当时对操作系统简直达到了痴迷的程度,只要工作上的事情一做完就去看操作系统方面的书籍资料,晚上下班和周末更是几乎宅在家里不出门,真的可谓是废寝忘食。
终于在参考了Linux, VxWorks还有国外一些大牛写的OS内核之后,最后搞出来了一个玩具级的OS内核,前后大概持续了半年左右。当时也纯粹是为了学习的目的,也是觉得比较好玩,基本功能实现后,就慢慢遗忘在在磁盘的角落里积灰了。。。
所以,从技术上说,开发一个OS内核并没有想象中的那么困难,很多大公司其实技术上都完全有能力开发一个具备基本功能的OS内核。当然,功能完备性、安全性、性能等方面能不能搞好就另说了。
我现在所在的公司,就有完全自主开发的微内核OS,并且在公司上百万台的电信级的分布式集群服务器产品上已经稳定运行了二十多年。并且,还围绕这个OS建立了一系列配套生态,比如基础开发库,一系列配套的开发调试工具,甚至还有专门为这个系统开发的编程语言和编译器等。我曾经有几年的主要工作,就是在维护这个OS内核。可惜的是,这几年公司已经在慢慢用Linux替换这个OS了,估计几年之后就要彻底退役了。
开发一个操作系统的真正难点在于创建围绕在这个内核周边的生态系统。一个单独的内核远远不能构成一个完整的系统,它需要大量的支持环境,如系统支持库,应用程序,开发调试工具等等,此外还要能够推广出去,要有其他上下游的公司愿意使用,能够被广大开发者认可并愿意为其开发新的应用等等,这才是真正的难点所在,是需要投入大量人力物力财力才有可能完成的。
很多公司也正是从技术积累上,时间上,成本上,风险上来考虑,不愿意花大力气在这上面。所以才有了如今Windows,Linux,Apple三分天下的局面。
咱们国家虽然急切渴望能有一个自研的OS,但现状是,有实力的厂商更愿意投资一些能看得到摸得着的实实在在的应用产品上,这样来钱快,才能在最短的时间内看到收益回报,也就是更高的投入回报比。
对于像操作系统,编译器之类的基础软件,除了需要雄厚的技术实力外,还需要耗费大量的人力财力物力,而且失败的风险较大。即便开发成功,还要花大力气进行推广,建立周边生态,这更是需要更大投资,时间成本也更大,往往需要几年甚至十几年时间才能看得到收益。
这对于习惯吃快餐、赚快钱的国内企业来说,根本无法接受。这也需要企业决策层领导具有很大的魄力和战略眼光,但现实中,这样的领导简直是凤毛麟角。
这也正是国内厂商大都不愿触碰自研OS的主要原因,也造成了我国至今仍没有自己的操作系统编译器的局面。
此外,现在市场上对一个新的OS的需求其实也没有那么急迫,没有需求,就没有利益,自然就没有动力。尤其在快餐文化盛行的今天,更是很少有公司愿意去触碰这吃力不讨好的事情。
当然也无须太过悲观,任何东西,只要有需求,就会有利益吸引力,就会给企业研究机构足够的动力。相信将来某一天,一旦Windows, Linux, Apple三巨头不再适用市场需求,马上就会有新的操作系统出现。
或许也用不了等很久吧,毕竟微软已经宣布Win10之后将不会再有大的Windows更新版本,而Linux虽然现在社区的开发仍然很活跃,新的功能仍在被源源不断的添加进去,但也正是由于这个原因,它现在变成了一个大而全的通用操作系统,已经变得越来越臃肿,很多场景其实已经不是很适用了,只是没有更好的替代品,很多公司又不愿意投入自研OS,所以只能选择相对成熟并且生态资源丰富的Linux。
Google不是几年前就已经开始开发Fuchsia了吗? 咱们拭目以待吧。也希望国内有实力的企业和科研机构能够迎头赶上,早日实现自研OS梦。
github上放出来的只是一个迷你的嵌入式OS内核LiteOS,翻看过代码,本身并没有很大的难度。至于鸿蒙OS,源码还没开放,目前为止还只是在PPT上出现过,所以不好评价,但愿能够不负众望吧。
Hongmeng OS是基于Linux内核源代码的开发。 OS实现代码主要是C语言,内核提供的本机系统调用接口肯定也是C语言接口。上层APP应用程序与现有的Android JAVA程序兼容,可能需要重新编译JAVA应用程序。程序代码将运行。至于应用程序编程SDK不支持JAVA以外的编程语言,还需要等待系统正式发布后才能发布,但是你可以先了解下面的编译器,据说这是一个业界开源编译器,用于编译APP程序。 。但是,我仍然希望鸿蒙操作系统的应用程序编程接口支持更多的编程语言(如CC等),这样程序可以有更多的选择。
操作系统从运行效率 和 可控性来看是要用C语言。 解释性语言,比如python、PHP就不大可能的。Java 也不太可能,一方面运行效率不如C语言,另外不可控:在内存方面,C语言内存申请和释放都很实时,不像Java 语言内存释放 要等GC。在操作系统层面,内存申请和释放是很频繁的,不能用GC定时释放,万一来不及释放 就OOM了,另外的万一发生full GC 那就更糟糕了,操作系统底层指令运行稍微一抖动,应用程序的执行性能就震了三震。
希望对你有所帮助!
从技术上讲,操作系统是一个没有多少技术含量的事情。一个明白操作系统原理的人用几个月就可以写出一个操作系统。
这个世界上的操作系统成千上万,到处都是,任何一个自动设备中都可以认为里面有一个操作系统,电话、门禁、共享自行车中都有。
鸿蒙系统是否好写要看他的目标是什么,只是简单使用当然简单,但要成为一个流行的系统则难度非常的高。
个人看法是鸿蒙系统有天生的缺陷,他是对抗美国产生的,华为一家独大,包括国内的其它厂商都不能干涉,同时他并非开源,他想怎么办就怎么办。这样就造成开发者特别是国外的开发者面临的风险非常的大。要是和谁闹翻了给禁用那怎么办?
安卓有一个最大的优势在于开源,世界上的开发者都可以使用,共同推进发展。当然本次事件更多的来源于政府的制裁,作为google当然要遵守政府的规定。但鸿蒙同时要遵守政府及企业的双层管制。
因此鸿蒙更多的是国内华为的系统,无论是阿里、小米还是谁想用都面临具体的风险,国外的开发者更是这样,要是他的国家一不小心辱华了,华为就给他们禁用,他们就死定了。
操作系统没有一个可以用好写来形容。
首先从代码量上来讲,操作系统作为一个系统,其代码量工作是非常庞大的,如果由单个开发者来完成,会是一项非常艰巨的任务。比如Windows内核的代码在5000万行以上,Linux目前在2500万行左右。如果题主从事开发工作的话,可以大概估计一下代码量的多少。
作为操作系统来说,兼容不同设备以及不同代的设备是必须的,向上和向下兼容保证了操作系统可以运行在不同的平台上,而向后兼容则保证了开发者的产品不会由于系统升级而出现不能使用的情况。
鸿蒙是分布式系统,显然需要支持不止一种类型的设备,这意味着操作系统本身需要考虑大量的底层硬件区别并给予支持。
操作系统最主要的一个功能是调度,即使在微内核架构里,调度依然被保留为内核的功能之一。
而调度在不同的负载下面,不同的设备上面以及不同的使用场景下面,都应该表现出不同的性能,那么开发者需要考虑到这其中最优并且最稳定的方案,最简单的方法不够智能,最智能的方法又可能引入一些问题。
所以总体来讲,不论操作系统本身性能优劣,从头开发一套系统就是一件工程量极其庞大的工作。
对于像华为这种公司来说,写出一个基于Linux的类似于安卓的系统应该是没有什么难度。但为什么鸿蒙系统到现在还没有正式退出使用?
其次一个系统主要是的就是它的生态系统,就是我们使用的各种app,就像当初微软的手机系统,就是死在软件生态不全,而形成生态就需要比较长时间和财力的投入,要吸引开发者去适配新的系统,而华为目前正在做这件事,通过高于其他系统的收益分成或者收益全部让利开发者的方式慢慢完善自己的生态。目前国内外已经有很多软件及 游戏 厂商已经开始适配HMS服务了,相信不久我们就能看到生态完善的华为新的系统了[赞]
听到鸿蒙,华为都不知道是谁家系统,也许根本就不存在
凑合吧,笔画有点多[捂脸]
难!
但对任何一家世界级体量的公司,都写得出!连黑莓手机都能写得出!
但生态很难!收费没人用,开源也没人用[捂脸]
不好写
挺好用的。
华为鸿蒙系统,在2019年8月9日,华为在东莞举行华为开发者大会,正式发布操作系统鸿蒙OS。
华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。
系统简介
鸿蒙OS是华为公司开发的一款基于微内核、耗时10年、4000多名研发人员投入开发、 面向5G物联网 、面向全场景的分布式操作系统。鸿蒙的英文名是HarmonyOS,意为和谐。不是安卓系统的分支或修改而来的。
与安卓、iOS是不一样的操作系统。性能上不弱于安卓系统,而且华为还为基于安卓生态开发的应用能够平稳迁移到鸿蒙OS上做好衔接——将相关系统及应用迁移到鸿蒙OS上,差不多两天就可以完成迁移及部署。
参考 鸿蒙官方文档(点击传送门) ,做一下流程梳理简化,及踩坑记录
华为将真机调试分成物理真机和远程真机。这里说的都是物理真机(手机、平板)。鸿蒙真机调试巨复杂,不像Android那么容易方便。
贴一下官方的调试流程图:
总结一下:
上面这个流程可以忽略,没讲到重点。真机调试是需要在 AppGallery Connect 中创建应用的,调试应用需要的cer和p7b文件是从这里生成的。
先决条件:
1. 鸿蒙手机通过USB连接电脑,并开启USB调试。
2. 一个华为开发者账号,实名认证
3. APP开发工具DevEco-Studio
关键流程:
1. Studio创建应用
2. 如果未登录过,File Project Structure Project Signing Configs签名配置页,点击“Sign In”
3. AppGallery创建应用(包名和Studio创建的一样)
4. 官方文档到这在签名配置页就点Try Again可以自动签名,我试了不行,以下全是手动
5. Studio中Build Generate key and CSR 生成p12和csr文件
6. 获取手机udid,命令行hdc shell bm get -udid(下一步设备管理要用)
7. AppGallery主页 用户与访问 左侧设备管理添加udid的设备(生成p7b时要用)
8. AppGallery主页 用户与访问 左侧证书管理生成cer文件(生成p7b和签名配置要用)
9. AppGallery主页 我的项目 左侧HarmonyOS应用 HAP provision profile,生成p7b文件
10. 最后在签名配置页配好 p12、p7b、cer等参数,运行鸿蒙应用到真机就行了