热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

鸿蒙系统用的什么开发工具,如何开发鸿蒙系统应用

华为鸿蒙系统用什么语言写的?系统如下:华为鸿蒙系统采用开源的方式,源代码已经在官方公布的网站挂出。根据其源代码来看,内核基于C++语言开发,部分功能模块通过C语言以及C++混合编写

华为鸿蒙系统用什么语言写的?

系统如下:

华为鸿蒙系统采用开源的方式,源代码已经在官方公布的网站挂出。根据其源代码来看,内核基于C++语言开发,部分功能模块通过C语言以及C++混合编写。总体上来看,鸿蒙系统是以C语言为基础,掺杂了部分C++语言共同开发而来。

简介:

华为鸿蒙系统(HUAWEI HarmonyOS),是华为在2019年8月9日于东莞举行华为开发者大会,正式发布的操作系统鸿蒙OS。

华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。

鸿蒙3.0系统与华为仓颉编程语言,从系统级6层架构上深入分析

华为的鸿蒙系统3.0开始对9款手机的公测,这其中就包括p50系列的3款手机,mate40系列的5款手机,和一款12.6英寸的matepad pro。这让咱手里拿着的mate30备受冷落。但我自己心里就更加期待华为的仓颉编程语言。这么屈指一算,仓颉编程语言从4月2号开始内测以来已经两个多月了。因此,我预判,鸿蒙系统3.0会跟仓颉编程语言一起来到咱们的身边。

那么在准备迎接鸿蒙系统3.0和仓颉编程语言之前,我这一期帮大家打一个坚实的基础。我相信许多朋友当说起来操作系统或者是编程语言的时候,脑子里其实是有点支离破碎,或者是一头雾水。我帮助大家从一个宏观的角度去鸟瞰,去把握和理解计算机科学体系中的坐标,让你独具一双慧眼,单单靠着你的直觉就能获得专业的视角。计算机科学包括六层架构,操作系统在第四层上,华为仓颉编程语言这样的应用级编程语言则处在第五层上。

咱们先从底部开始,所谓万丈高楼平地起嘛。咱们来先看基础:信息理论。任何学科的基础都是数学,当然计算机科学也不例外。这第一层就是关于数学理论的。咱们日常用的是十进制,计算机则是由0和1构建起来的是二进制。那数学也很简单,就是关于0和1的加法。比如1加1,在十进制中是等于2,而在二进制1加1等于10,这就是所有的数学基础,也就是这么简单。

但是还有更加往上抽象的一个层面的基础,就是咱们在高中时候学习的“布尔代数”。看似不起眼的“布尔代数”研究的是机器如何思考,如何让机器来获得智能这样的问题。

布尔在1854年就解决发表一篇“研究人类的思考规律”的论文,提出了“布尔代数”,为机器如何思考打下了理论基础。

布尔当时的想法很简单。他认为人是理性的,那么人是按照理性逻辑来思考问题的。于是,如果他能把大脑思考问题的逻辑,提炼抽象出来的话,那么是不是就能用这逻辑在大脑之外去思考呢?布尔的这项雄心勃勃的构思就是人工智能的雏形。你想呀,如果把这个逻辑提炼出来用在机器机械零件上,机械零件就会开始思考。如果用在电路上,这个电路是不是也就开始思考了呢。布尔代数咱们就很熟悉了,我就在这里就不带展开,我前面有一期就专门来讲述了这个机器来如何用布尔代数来思考,大家感兴趣可以看下那一期,我在这不展开浪费时间。

再往上第二层就是硬件,布尔他把理论抽象出来,将布尔代数应用到电路上,电路是不是也就能开始思考?哎,到了1938年,香农就首次把布尔代数应用到了电路上,于是这个电路就开始思考了。从最早的真空管到半导体晶体管(我前面那一期也专门讲过“机器如何用晶体管来思考”)然后到集成电路,再到现在这个大型的集成电路芯片。我们知道麒麟9000芯片用的Arm架构的指令集,指挥CPU工作的指令又叫机器码。比如“加法”就是用一串数字机器码00000011来表示。

然而你会发现,用机器码来指挥这个cpu或者电脑工作太麻烦了。一般人哪里能记住像前面的6个0和后面两个1来表示加减乘除的加呢。

正是困扰于此,科学家就此提出来编程语言。最早编程语言是汇编语言。比如前面表示加法的机器码00000011,汇编语言中将其抽象为add。然而,汇编语言也需要大量的记忆,一个指令一个指令的对应,也是太机械了。再往前一步,往上一层抽象就是系统级的编程语言:面向过程的C语言。

一门编程语言所要做的一个主要工作就是在机器和我们人类思考之间建立一座桥梁。我们是人类的思考逻辑,机器是机械 式逻辑思考问题。越高级的编程语言越符合我们人类的思考逻辑,越初级的编程语言则越贴近机器的逻辑。因此,我们用高级的编程语言比如C语言,将想做的事情表达出来,它会自动转换成机器码。

我喜欢的编程发展史上的第二大古老的语言:Lisp语言。

就是直接使用我们的抽象思考的语言。比如重复地来做一件事,重复说五遍“Hello”这个单词。Lisp将重复抽象为dotimes,do是做, times是多次,dotimes反复多次做。看见没,编程语言成了我们抽象的思考工具。

当然,华为仓颉语言也是在编程语言这里,但不是系统级的编程语言,咱们后面再说

当在第二层硬件之上发展出来高级的编程语言,有了系统级的编程语言比如C语言之后。大家就发现,我需要一个操作系统来处理日常的基本任务,比如文件管理,进程管理,内存管理,设备管理和用户管理等等。于是科学家着手用编程语言写操作系统。而事实上C语言在1969年的发明,也正是为了移植与开发UNIX操作系统。C语言的设计者丹尼斯·里奇同时也是Unix操作系统的发明人。到了1991年Linus用C语言写了Linux内核,也是目前安卓和鸿蒙系统的内核。

华为的EROFS超级文件系统并入Linux内核之后,无论是Linux还是安卓都打上了20%的华为烙印。

操作系统再往上一层就是我们日常的应用。比如听歌、看视频等apps就是在操作系统之上。这也好理解,先有了操作系统,才有我们的各种应用。由此也能理解,为什么像鸿蒙系统3.0如此重要,因为应用程序要运行在上面。这些应用程序就是用华为仓颉编程语言等应用级编程语言开发的。不过,目前咱们手机上的应用程序都是用Java开发。未来鸿蒙系统将会使用自研的仓颉语言开发鸿蒙应用。

应用程序的主要功能之一是沟通和交流。我们用Email发邮件,用通讯视频聊天,而Web应用技术构建起来当前的互联网信息大厦。

好了,我们总结一下。计算机科学的六层架构。

第1层是信息理论,研究如何在大脑之外实现思考,布尔代数是人工智能的雏形。第2层是硬件,布尔代数应用到电路上,晶体管开始思考,将数以亿计的晶体管雕刻到集成电路CPU中,CPU的机器码指挥计算机工作。第3层编程语言,从枯燥难记的机器码里发展出来汇编语言,再到系统级的C语言,构建起来人类思考与机器逻辑之间桥梁。第4层操作系统,C语言不是凭空而来,是为了开发Unix操作系统而发明,而操作系统是计算机里最大的软件。第5层应用软件,日常所有的apps都运行在操作系统之上。仓颉编程语言是给鸿蒙系统开发应用程序的专属开发语言。第六层沟通互联,就是我们目前的互联网技术,在网络里看书、听音乐,点一份外卖等等。

这就是计算机科学六层架构,鸿蒙操作系统与仓颉编程语言各就各位。用架构去思考和看问题,不仅能心中有数,还能独具一双慧眼。

手机鸿蒙系统与开源鸿蒙系统有什么不同,是不是套壳安卓?

开源鸿蒙系统是华为公司从2012年就开始开发,严格意义上讲是基于Linux开发的,而安卓系统也是基于Linux开发的。开源鸿蒙系统将Linux内核、鸿蒙OS微内核与LiteOS合并为一个鸿蒙OS微内核,安卓系统内核则是基于Linux的宏内核。同时开源鸿蒙系统微内核的代码量只有Linux宏内核的千分之一,其受攻击几率也大幅降低,安全性大幅提高,所以开源鸿蒙系统是领先一代的操作系统。为了与开源鸿蒙系统竞争,谷歌也迫不及待发布下一代同是基于微内核的操作系统Fuchsia OS。

现阶段为了兼容基于安卓开发的各种APP,这是一个过渡时期。AOSP也是类似于开源鸿蒙系统,都是开源的,只要遵守协议可以随意开发。所以,有不少人认为手机鸿蒙系统是套壳安卓系统。

安卓系统是基于AOSP开发的,加上了自己的GMS服务(安卓的生态系统),就成了手机安卓系统,但是华为早在2019年第一轮制裁的时候就不能用GMS服务,华为用的是自己HMS服务。

所以如果安卓系统定义为AOSP+GMS,那手机鸿蒙系统就没有套壳安卓,如果安卓系统定义为AOSP,那华为也只是用了安卓的代码。就像中文是我们开发的,但是日本、韩国等等都在我们中文的基础上开发了自己的语言,难道要把他们语言禁了吗?我们的拼音也是基于英文开发的,我们是不能用了吗?没人管得着吧。

没有什么事是一蹴而就的,更何况这是一场关于国运的高 科技 战争,我们能做的只有默默支持,国人当自强!

2021年,华为给鸿蒙系统划定了“生死线”

昨天,鸿蒙系统(HarmonyOS)2.0手机开发者Beta版正式发布!

华为消费者业务软件部副总裁杨海松说:“既然我们已经做出了开发者Beta版,这说明我们已经准备好了。”

这意味着全球第一个面向万物互联的操作系统马上就会正式落地,一个新时代真的来了。

可能有的朋友对“HarmonyOS 2.0手机开发者Beta版”这个长长的名字,看不大懂。小俱在这里简单解释一下:

鸿蒙系统是面向物联网的,之前智慧屏版、智能手表版等已经用上了,这次是手机版。2019年荣耀智慧屏搭载的是1.0版本,这次是2.0版。而且,目前这个手机版是面向开发者的测试版(Beta版),只有华为开发者联盟官网实名认证的个人/企业开发者才可以下载试用,更多是为了调测为鸿蒙系统开发的APP。

目前有两种方式可以下载

1、使用HUAWEI DevEco Studio中的远端模拟器,HarmonyOS官网下载DevEco Studio 2.0 Beta3版本即可获得。

2、使用专属OTA升级真机进行调测,通过官方渠道报名(),审核通过后将收到华为官方公测邀请邮件,根据邮件内容指引,即可得到OTA推送。

适用设备包括

1、华为手机:全网通(5G双卡)P40 、 全网通版P40 Pro、Mate30、Mate30(5G) 、Mate30 Pro、Mate30 Pro(5G);。

2、华为平板电脑:全网通版、全网通版(5G)、WIFI版本的 MatePad Pro。

面向普通手机用户推送的鸿蒙系统,还需要再耐心等一两个月。根据华为消费者业务软件部总裁王成录的说法,2021年一二月份将会开放部分手机用户升级鸿蒙系统,初步升级会验证几个月,之后全面放开升级,市面上90%以上的机型都会升级。

除了手机,华为的其他自研产品也会大范围搭载鸿蒙系统。另外,还有40家硬件合作伙伴的产品将加入,保守估计,明年搭载鸿蒙OS的IoT设备数量将达到1亿部。华为方面透露,目前头部家电企业都在商谈。

自2019年8月荣耀智慧屏首发鸿蒙系统以来,已经过去了1年多时间。然而大众对鸿蒙系统仍然无感,甚至有很多质疑。其中的主要原因在于:对普通人来说,智慧屏版的鸿蒙系统并没有表现出有什么与众不同的地方,人们感知不到这是一个不一样的、划时代的新系统。

这也难怪,鸿蒙系统是面向万物互联的,只放在有限的设备上显然无法充分发挥其“从底层打通设备”的核心能力。况且,智慧屏不仅出货量有限,还是一种低频交互设备,人们的使用频率往往以天来计算,影响力有限。

现在,鸿蒙系统手机版来了,相信很快大家就会体会到鸿蒙的不一样之处。

智能手机的优势在于高普及率,几乎人手一部,而且跟人的交互非常密切,以分钟计。某种程度上,智能手机已经成为了我们身体的一部分,相当于器官的延伸。因此,它被选为了万物智联的核心入口。

一旦作为中枢的智能手机搭载了鸿蒙系统,由于它的庞大规模,以及辐射整个智能生态的覆盖能力,鸿蒙系统的影响力将得到释放。

人们会发现,搭载鸿蒙系统的各种设备之间,APP可以通用,能力可以共享,数据可以同步。比如,手机可以用无人机的摄像头;手机打开菜谱,一碰烤箱即可配对,传输对应数据后,烤箱就开始自动烹饪;手机、平板、大屏之间无缝跨屏协同,可以实时批注,协同办公更高效。

随着鸿蒙系统大规模落地,可以预见:2021年将是智慧物联真正走进人们生活的一年。

一个新系统能不能活下来,最关键的便是生态:硬件生态需要厂商的合作,软件生态需要开发者的支持。

鸿蒙系统作为5G万物互联时代的先行者,得到智能家居硬件厂商的支持并不难。智能家居厂商虽然也在打造自己的生态,但更多是在硬件连接层面。

至于操作系统层面,放眼全球,能做到的也没有几个。即使像苹果、亚马逊、谷歌、三星这样的巨头,也都在统一标准,它们早在2019年底便组成了联盟,制定新的智能连接家用设备统一标准。因此,国内硬件厂商也有统一标准的需求,否则就会在未来的竞争中仰他人鼻息。

鸿蒙系统是开源的,如果能够在利益上合理分配,包括小米、OPPO、vivo在内的手机厂商,理论上都可以使用。其他的硬件厂商加入就更合理了。

软件生态方面,首先,鸿蒙系统的先锋性质、万物互联的巨大市场,都会吸引开发者加入。根据华为方面提供的数据,目前的有效开发者数量已经超过10万。有效开发者就是使用鸿蒙OS IDE开发工具,并提交代码的。

其次,华为面向开发者开放的能力,让开发工作变得更加高效。

分布式的编程框架,华为把能够实现应用跨终端部署的基础单元,称为“元能力”,应用由元能力组装,可拆分合并,实现一次代码,多端适用。将复杂的设备间协同封装成简单接口,有超过15000个API可供调用。

分布式UI,不同设备的UI交互设计一直困扰着开发者,华为为此提供了7类自适应布局能力,例如拉伸、缩放,去适应不同尺寸的屏幕。

开发者工具平台,华为DevEco Studio 2.0提供了9套手机应用模板,据称每个模板可以减少近千行的工作量,也就是华为已经预置了很多需要的组件。提供了手机、手表、电视三种终端产品的应用效果展示。开发者在编写代码的同时就可以看到代码在设备上实现的效果。

另外,鸿蒙系统是可以兼容安卓的。安卓APP经过开发者简单的编译后,就可以用于鸿蒙系统。

通过上面的介绍,相信大家对鸿蒙系统软件生态建设应该充满了信心。

华为消费者业务软件部副总裁杨海松说, 希望在明年年底,中国智能家居市场中搭载鸿蒙系统的设备出货量能达到16%,这是一条“生死线”。

中国网络最好,IoT制造最强,应用市场最大,足够鸿蒙发挥,但最终鸿蒙系统能发展到何种地步,还有很多X因素。送上祝福,拭目以待吧。

(图片源自网络,仅为传播更多信息目的)


推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
author-avatar
好1男1人_329
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有