立即注册
查看: 419|回复: 0

[鸿蒙OS应用] JS语言在HarmonyOS应用开发框架中的作用

已绑定手机
发表于 2021-9-9 11:43:41 | 显示全部楼层 |阅读模式 来自 广东省深圳市
在万物互联(Internet of Things,简称IoT)时代,JS(JavaScript)语言越来越重要了,并且受到了很多开发者小伙伴的关注。HarmonyOS也选择JS作为其应用开发的一种语言,肯定有不少好奇的小伙伴想知道:JS语言有什么优势呢?JS被应用在了HarmonyOS的哪些方面呢?

一、IoT时代的应用开发挑战
挑战1:如何实现一次开发,多端部署?
IoT时代的终端电子设备差异较大(从KB级内存的耳机到GB级内存的手机)、形态各异(有屏幕和无屏幕)、尺寸各异(小到耳机大到汽车)、交互方式各异(触屏控制和声音控制等),对每种设备都开发一个应用是不可接受的,所以如何实现一次开发,多端部署是需要面对的第一个挑战。

挑战2:如何利用业界已有的生态资源,避免大规模重复造轮子?
因为软件的模块化的特点,应用程序开发可以通过模块重用来大大降低开发的复杂性和缩短开发周期。在IoT时代,这样的需求更为强烈,因为开发者要面对更多终端设备,就更需要利用好业界已有的开发生态资源,避免大规模重复造轮子。

挑战3:如何提高应用开发效率和支持快速升级?
IoT时代多种终端运行的需求,会使得软件开发更为复杂,也带来了更大的开发和维护成本。特别是IoT时代要求更快速的软件迭代和升级,大的软件安装包会增加应用快速迭代升级的困难。如何减少软件复杂性(比如代码规模)和提升开发升级效率是非常有挑战的问题。

二、JS语言的优势
针对上述IoT时代的应用开发挑战,我们考察了目前业界常见的移动端编程语言(比如Java、JS、Swift、Dart和C++)后发现,JS在以下方面可以较好地应对这些挑战:
1. 多端分发和运行
JS执行引擎有许多业界的高性能实现和应用框架解决方案,比如:
-应用在各种物联网设备上支持KB级内存的JerryScript
-应用在多种移动操作系统的UI框架上的高性能JS引擎,比如ReactNative中的hermes引擎
-广泛使用在浏览器(Chrome和Safari)的高性能引擎V8和JSC
-应用在服务端(或者云端)的优秀编程框架Node.js
-应用在桌面端的Progress-Web Application和Electron-based Application等优秀解决方案
可见JS语言很适合开发各种形态的终端设备上的应用,而且具有很好的跨平台、跨设备、全栈的特点。

2. 生态和开放性
JS有非常强大的生态社区,并且在业界享有非常高的声誉。
-在TIOBE的排名报告中,JS一直连续几年被评为排名前五的编程语言。
-在著名网站StackOverflow的2020年调查中,JS是开发人员中最受欢迎的语言。
-在GitHub的2020年度报告中,JS是使用GitHub的5600万开发者中最流行的编程语言。
-有大量使用JS的业界知名公司,包括Google、Microsoft、Alibaba、Facebook等。

而且JS社区有大量的成熟高性能第三方代码和模块,可以非常方便地用于搭建JS应用和服务。这样可以极大降低JS应用开发的复杂性和技术门槛。特别是,目前蓬勃发展的小程序生态(比如微信小程序、淘宝小程序、支付宝小程序、字节跳动小程序和快应用)也选择了JS作为应用开发语言。
此外,JS的标准Ecmascript由TC39标准委员会制定,不属于任何一家公司,是属于业界开放标准。在业界有各种各样的高性能JS语言开源实现,同时整个JS社区也积极地吸纳最新的特性提案,比如各种object-oriented programming(面向对象的程序设计,简称OOP)语言特性,来快速迭代JS的语言规范。

3. 开发效率和性能
相比静态类型开发语言,JS因为动态类型和类脚本语言的特点,开发类似功能的应用时,JS代码一般行数更少。在经过ES2015版本迭代之后,JS原生支持了大型应用开发需要的OOP编程范式和完善的异步编程模型,使得 JS开发大型复杂OOP应用更为高效。另外,随着JS各种方言(比如TypeScript)的出现,通过添加静态类型标注,IDE自动导航和代码查找补齐功能得到极大提升,从而有效地提升了JS开发大型工程的便利性和可维护性。
在性能方面,随着Just-in-time-compiler(即时编译器,简称JITC)的引入,JS的性能也得到了质的提升,特别是当JS程序的动态类型在执行过程中趋于稳定时,JITC够生成非常高效的机器码,从而提升大型JS应用的性能。不过对于移动应用来说,JITC也会带来一定的响应性能的开销,所以未来JS也需要类似Ahead-of-time-compilation(简称AOTC)这样的静态编译解决方案。

三、JS在HarmonyOS中的典型应用
HarmonyOS分布式操作系统定位为万物互联时代的操作系统,全面覆盖平板、电视、手表、手机、穿戴设备、智能汽车和智能家居等终端,在操作系统层面将这些多终端硬件融为一体,形成超级终端。如图1所示,各种生活中用到的电子设备,音响、电视、笔记本电脑、冰箱、打字机等,通过HarmonyOS分布式操作系统相互连接协同,为家庭生活提供全场景的服务体验。
1.jpg
因为JS语言的以上优势和HarmonyOS的分布式特点,HarmonyOS选择采用JS作为其分布式应用开发的一种语言。下面让我们从开发语言的角度,看看JS在HarmonyOS分布式操作系统中的三个典型应用。

1. 在轻量化UI框架中的应用
在IoT时代,各种设备的能力差异非常大,从KB级到GB级的内存设备等,所以HarmonyOS的UI框架需要能覆盖各种终端设备。
为了实现这样的设计目标,HarmonyOS的轻量级UI框架采用如图2所示的设计,使用JS作为其应用开发的一种语言,并提供主流的类Web开发范式和数据模型(MVVM即Model-View-ViewModel),即用户通过编写JS、CSS、HTML标签和数据绑定的方式开发UI代码和业务逻辑。HarmonyOS的轻量级UI框架采用轻量级JS引擎,来运行JS框架层业务逻辑,同时把渲染框架的核心采用C++编写,搭配轻量级图形引擎,来达到内存非常轻量的设计目标。

更多详细介绍请下载附件查看
2021-9-9 11:42 上传
文件大小:
308.8 KB
下载次数:
1
本地下载

16RD supports Paypal , Payment is calculated at the exchange rate of the day. Unable to download please contact 18902843661 (WhatsApp OR wechat number)

关于一牛网在微软浏览器(Microsoft Edge、IE浏览器)警报通告&解决方案!(无法下载直接更换浏览器即可)

*附件为作者发布,与本站无关,如有侵权,请联系客服删除

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表