Harmony OS (eTS语言)的起源和演进

这篇具有很好参考价值的文章主要介绍了Harmony OS (eTS语言)的起源和演进。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Harmony OS(eTS语言)的起源和演进

1.eTS语言的起源和演进

1.1.概括

  Mozilla创造了JS,Microsoft创建了TS,Huawei进一步推出了eTS。eTS(extended TypeScript)是鸿蒙(Harmony)生态的一种应用开发语言。也是Harmony系统(Harmony开发语言java、js、eTS,Harmony3.0后java语言废弃了)主推的一种开发语言。它在TypeScript(简称TS)的基础上,扩展了声明式UI、状态管理等相应的能力,让开发者可以以更简洁、更自然的方式开发高性能应用。TS是JavaScript(简称JS)的超集,eTS则是TS的超集。eTS会结合应用开发和运行的需求

1.2 js

  JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。js语言由Mozilla创造,最初主要是为了解决页面中的逻辑交互问题,它和HTML(负责页面内容)、CSS(负责页面布局和样式)共同组成了Web页面/应用开发的基础。javaScript (简称“js”) 是一种轻量级解释型的编程语言(代码不进行预编译)。JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。JavaScript也可以用于其他场合,如服务器端编程(Node.js)。随着Web和浏览器的普及,以及Node.js进一步将JS扩展到了浏览器以外的环境,js语言得到了飞速的发展。在2015年相关的标准组织ECMA发布了一个主要的版本ECMAScript 6(简称ES6),这个版本具备了较为完整的语言能力,包括类(Class)、模块(Module)、相关的语言基础API增强(Map/Set等)、箭头函数(Arrow Function)等。从2015年开始,ECMA每年都会发布一个标准版本,比如ES2016/ES2017/ES2018等,js语言越来越成熟。
  j为了提升应用的开发效率,相应的js前端框架也不断地涌现出来。其中比较典型的有Facebook发起的React.js,以及个人开发者尤雨溪发起的Vue.js。React和Vue的主要出发点都是将响应式编程的能力引入到应用开发中,实现数据和界面内容的自动关联处理。具体的实现方式上,React对js做了一些扩展,引入了JSX(JavaScript XML)语法,可以将HTML的内容统一表示成js来处理;Vue则是通过扩展的模板语法(Template)的方式来处理。

1.2.1 React

  React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。
  React 是一个用于构建用户界面的JavaScript 库。React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
  React 是用于动态构建用户界面的 JavaScript 库(只关注于视图)

1.2.1 Vue

  Vue是一款前端渐进式框架,可以提高前端开发效率。
  Vue可以说是MVVM架构的最佳实践,是一个JavaScript MVVM库,是一套构建用户界面的渐进式框架。专注于 MVVM 中的 ViewModel,不仅做到了数据双向绑定,而且也是一款相对比较轻量级的JS 库,API 简洁。
  Vue用于构建用户界面的渐进式框架,渐进式代表的含义是:主张最少。每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。

1.3. TS

  在类型系统基础上,引入了声明文件(Declaration Files)来管理接口或其他自定义类型。声明文件一般是以d.ts的形式来定义模块中的接口,这些接口和具体的实现做了相应的分离,有助于各模块之间的分工协作。另外,TS通过接口,泛型(Generics)等相关特性的支持,进一步增强了设计复杂的框架所需的扩展以及复用能力。
在工具层面,TS也有相应的编辑器、编译器、IDE(Integrated Development Environment)插件等相关的工具,来进一步提升开发效率。
  TS在兼容JS生态方面也做了较好的平衡,TS应用通过相应编译器可以编译出纯JS应用,可以在标准的JS引擎上运行。同时,TS定位为JS的超集,即JS应用也是合法的TS应用。此外,在标准层面上,TS兼容ECMA的相应标准,并维护那些还未成为ECMA标准的新特性。
持续演进,包括但不限于引入分布式开发范式、并行和并发能力增强、类型系统增强等方面的语言特性。

1.3. eTS

  从UI框架的需求角度,eTS在TS的类型系统的基础上,做了进一步的扩展:定义了各种装饰器、自定义组件和UI描述机制,再配合UI开发框架中的UI内置组件、事件方法、属性方法等共同构成了应用开发的主体。在应用开发中,除了UI的结构化描述之外,还有一个重要的方面:状态管理。如上述示例中,用 @State 装饰过的变量 myText ,包含了一个基础的状态管理机制,即 myText 的值的变化会自动触发相应的 UI 变更 (Text组件)。ArkUI 中进一步提供了多维度的状态管理机制。和 UI 相关联的数据,不仅可以在组件内使用,还可以在不同组件层级间传递,比如父子组件之间,爷孙组件之间,也可以是全局范围内的传递,还可以是跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。开发者可以灵活的利用这些能力来实现数据和 UI 的联动。
  总体而言,ArkUI开发框架通过扩展成熟语言、结合语法糖或者语言原生的元编程能力、以及UI组件、状态管理等方面设计了统一的UI开发范式,结合原生语言能力共同完成应用开发。这些构成了当前eTS基于TS的主要扩展。
  当然,eTS以及ArkUI开发框架还很年轻,在渲染方面,主流Web引擎由于本身复杂度以及历史原因,性能、资源占用方面与常见OS原生框架都有一定的差距,尤其在移动平台上。React Native通过渲染架构的改进一定程度上提升了性能体验,但在平台渲染效果和能力的一致性,以及JS语言性能等方面还是存在一定的不足。还有很多其它方面也会持续演进,比如UI自定义能力的进一步完善,语言运行时以及跨语言交互的进一步优化,跨OS平台能力的扩展(包括Android、iOS等),分布式开发范式等等。

2. Harmony OS的起源和演进

2.1. 鸿蒙概念阶段

  2012年9月:华为开始规划自有操作系统“鸿蒙”,其初衷是为了防范于未然,确保在关键时刻有备用系统可以使用。2016年:鸿蒙项目正式启动,被命名为“HarmonyOS”,华为开始全力投入操作系统的研发工作。2017年至2019年间:鸿蒙内核经历了多个版本的开发与完善。2019年5月24日:华为申请了“华为鸿蒙”商标。这个时候大家思想都还没有统一,这个名字甚至都是自媒体扒出来的。

2.2. HarmonyOS 1

  2019年8月9日:华为正式发布了鸿蒙系统(HarmonyOS 1.0),开发语言是java,只能在模拟器pad上运行,开发一些简单功能。这个阶段其实只有OpenHarmony 1.0,而且主要还是liteos改。Liteos是华为用在路由器等iot设备的操作系统。真实情况是:鸿蒙的完全体还没开发完,只拿出了liteos部分。

2.3. HarmonyOS 2

  2020年:华为发布了鸿蒙HarmonyOS 2.0版本,该版本支持多种设备,包括智能手机、平板电脑、智能电视、智能穿戴等,此时HarmonyOS开发语言为java、js并存,后期HarmonyOS 2.1偏重于js语言开发。
  这个阶段手机叫HarmonyOS 2,正式改名。此时的手机鸿蒙是双框架一一同时支持AOSP的APK和鸿蒙的HAP格式,带有OpenHarmony,但是其中后者只有开发者用DevEco才能在手机上运行,所以事实上鸿蒙2是“真鸿蒙”但是“未启用”的状态。
  这种状态造成的最大尴尬是,你说这是鸿蒙,那鸿蒙HAP生态默认不开启;你说不是鸿蒙,但又具备完整的鸿蒙能力。这种尴尬类似于“九岁的男孩是不是男人一样。
  此时的HarmonyOS最大问题是因为安卓只能运行APK,所以HAP格式解压缩后需要有一个APK的入口(并非软件实体)。同时根据评论区可知,部分api的实现是通过映射aosp实现的,这不意外。另一位开发者透露,通过对代码进行追踪,当时的iava代码是通过安卓实现的,这也合理。这造成了广泛的误解:鸿蒙app是套壳安卓app。真实的情况是:临时为开发者能在手机鸿蒙上运行而做的入口和映射,包中APK并非程序本体。DevEco其实可以佐证这个不是APK套壳想要编译出完整的APK需要AndroidSDK,但DevEco使用的HarmonyOS SDK并不包含Android SDK,具体的文件都是清晰可查看对比的。这个阶段的最大问题是,API本身的不稳定一这对开发者来说不是特别友好,但也是技术探索中的必要弯路。这个阶段的OepnHarmony已经初步能刷到开发板、带有桌面了,源代码6GB,容量是上一阶段的30倍。

2.4. HarmonyOS 3

  2022年7月27日晚,HarmonyOS 3.0系统正式发布,整体还是JS/TS语言,非常适合低成本开发APP。其中,基于TS扩展的声明式UI范式中所用的语言就是eTS。这个阶段手机叫HarmonyOS 3.0仍然是双框架,更加成熟。
  ArkTS是HarmonyOS优选的主力应用开发语言,围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展。扩展能力包含声明式UI描述、自定义组件、动态扩展UI元素、状态管理和渲染控制。状态管理作为基于ArkTS的声明式开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。状态管理包括UI组件状态和应用程序状态,两者协作可以使开发者完整地构建整个应用的数据更新和UI渲染。ArkTS语言的基础知识请参考学习ArkTS语言。
  尽管这时候可以推进鸿蒙HAP生态了,但是这时候由于华为使用高通芯片没有驱动OpenHarmony是否能部署到高通芯片上取决于高通,仅有已经停售的高通芯片高通会开放驱动以供开发者自行匹配。此时的华为消费者业务萎靡不振,软件厂商配合的意愿也要打问号。

2.5. HarmonyOS 4

  HarmonyOS 4.0于2023年8月4日正式发布。这个阶段的鸿蒙仍然是双框架。OpenHarmony已经演进到API10一一个非常成熟的系统了。这个阶段华为推出了HarmonyOS NEXT,top200的app在推进适配。
  此时的HarmonyOS可以打成app、hap包。app包仅用于上架应用市场,是最终release上架包;hap包为调试版本,您调试应用过程中可以使用hap进行运行,同时app包无法通过hdc命令安装,hap调试包可通过hdc app install xxx.hap进行安装。
  该版本为开发者提供了一系列功能和工具,旨在提升应用开发的便捷性和效率。其中的一些重要更新包括ArkTS语言、Stage模型、ArkUI增强组件以及DevEcoStudio功能的增强。
  HarmonyOS NEXT开发者预览版。据了解,HarmonyOS NEXT开发者预览版8月面向合作企业开发者开放,2024年第一季度面向所有开发者开放。HarmonyOS NEXT不再兼容安卓应用,如果打开安卓APK文件,会提示“无法打开此文件”。
  值得注意的是,HarmonyOS NEXT 系统底座全线自研,去掉了传统的 AOSP 代码,仅支持鸿蒙内核和鸿蒙系统的应用,减少了 40% 的冗余代码,使系统的流畅度、能效、纯净安全特性大为提升。未来一年HarmonyOS NEXT开发者预览版的升级用户将突破1亿,也就是说未来会有越来越多的鸿蒙原生应用推出。文章来源地址https://www.toymoban.com/news/detail-774770.html

到了这里,关于Harmony OS (eTS语言)的起源和演进的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解ArkTS:Harmony OS 应用开发语言 TypeScript 的基础语法和关键特性

    Harmony OS应用开发的主力语言ArkTS的前身TS语言的基本语法。通过学习变量的声明和数据类型、条件控制、函数声明、循环迭代等基本知识,并了解内核接口的声明和使用。同时还介绍了模块化开发的概念,提高代码的复用性和开发效率。该对话还涉及了if else和switch条件控制语

    2024年02月04日
    浏览(50)
  • 身份证阅读器和社保卡读卡器Harmony鸿蒙系统ArkTS语言SDK开发包

    项目需求,用ArkTS新一代开发语言实现了在Harmony鸿蒙系统上面兼容身份证阅读器和社保卡读卡器,调用了DonseeDeviceLib.har这个读卡库。 需要注意的是,鸿蒙系统的app扩展名为.hap,本项目编译输出的应用为:entry-default-signed.hap 下面是调用身份证阅读器读取身份证信息的接口,支

    2024年02月03日
    浏览(73)
  • 带你走进Harmony OS 开发

    HUAWEI HarmonyOS 鸿蒙系统(鸿蒙 OS)是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。 Har

    2024年02月04日
    浏览(45)
  • Harmony OS 开发指南——源码下载和编译

    本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台( Hi3516 , Hi3518 和 Hi3861 )的编译环境,以及如何将源码编译为三个目标平台的二进制文件。 坑点总结 : 下载源码基本上没有太多坑,可以很顺利的进行 编译源码主要的一个大坑是,默认版本的 s

    2023年04月18日
    浏览(52)
  • Harmony鸿蒙南向驱动开发流程

    HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。并以组件化驱动模型作为核心设计思路,让驱动开发和部署更加规范,旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的驱动

    2024年04月27日
    浏览(35)
  • Stage模型详解,UIability------Harmony OS 开发(第五期)

    如上图所示,蓝色框内就是代表一个模块, 一个工程下可以有n个模块,但只能有一个entry模块,即入口模块(核心),里面是该APP的主要功能 。模块分为两种类型: Ability Module和Library Module模块 ,前者是能力模块,用于实现对应的页面和功能,后者是共享模块,里面的功能和已经创

    2024年01月24日
    浏览(48)
  • 鸿蒙:Harmony开发基础知识详解

    工欲善其事,必先利其器。 上一篇博文实现了一个 \\\"Hello Harmony\\\" 的Demo,今天这篇博文就以 \\\"Hello Harmony\\\"  为例,以官网开发文档为依据,从鸿蒙开发主要的几个方面入手,详细了解一下鸿蒙开发所需的基础知识。 HarmonyOS提供了一套UI开发框架,即 方舟开发框架 ( ArkUI框架 )

    2024年02月05日
    浏览(53)
  • 鸿蒙Harmony开发学习(一)运行helloworld

    HarmonyOS与OpenHarmony (1)本质上的不同是:HarmonyOS是鸿蒙操作系统,而OpenHarmony则是从开源项目。这里可以联想一下Android,比如小米手机在Android开源系统的基础上开发了MIUI的手机操作系统,HarmonyOS就类似于MIUI,OpenHarmony类似Android基础底座。 (2)HarmonyOS:是双框架,内聚了AO

    2024年02月01日
    浏览(35)
  • 鸿蒙实战开发-相机和媒体库、如何在eTS中调用相机拍照和录像

    此Demo展示如何在eTS中调用相机拍照和录像,以及使用媒体库接口将图片和视频保存的操作。实现效果如下: 使用说明 1.启动应用,在权限弹窗中授权后返回应用,进入相机界面。 2.相机界面默认是拍照模式,点击底部拍照按钮可以拍照,拍照完成会在底部左侧显示照片预览

    2024年04月09日
    浏览(62)
  • Harmony鸿蒙南向驱动开发-RTC接口使用

    功能简介 RTC(real-time clock)为操作系统中的实时时钟设备,为操作系统提供精准的实时时间和定时报警功能。当设备下电后,通过外置电池供电,RTC继续记录操作系统时间;设备上电后,RTC提供实时时钟给操作系统,确保断电后系统时间的连续性。 运作机制 在HDF框架中,

    2024年04月13日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包