HarmonyOS 开发 Java 与 ArkTS 如何抉择?

本文详细分析 Java 与 ArkTS 在 HarmonyOS 开发过程的区别,力求解答学员的一些困惑。

何为 HarmonyOS?

在讨论语言的差异时,我们先了解下什么是 HarmonyOS。华为官方是这么解释 HarmonyOS 的:


“鸿蒙操作系统”特指华为智能终端操作系统。“鸿蒙操作系统”具有以下三大特征:一是一套操作系统可以满足大大小小设备需求,实现统一OS,弹性部署;二是搭载该操作系统的设备在系统层面融为一体、形成超级终端,让设备的硬件能力可以弹性扩展,实现设备之间硬件互助,资源共享;三是面向开发者,实现一次开发,多端部署。

HarmonyOS 就是 “鸿蒙操作系统” 的英文名,也简称为 “鸿蒙 OS”,是基于 OpenHarmony、AOSP 等开源项目的商用版本。

这里需要注意:

  • 一是 HarmonyOS 不是开源项目,而是商用版本。

  • 二是 HarmonyOS 手机和平板之所以能运行 Android 程序,是因为 HarmonyOS 实现了现有 Android 生态应用(即 AOSP)的运行。

当然,HarmonyOS 的志愿远非如此,未来有可能会完全剥离掉 AOSP(详见 HarmonyOS Next 项目),当然,其结果必然是不再兼容 Android,无法在 HarmonyOS 上运行 Android 程序。

何时发布 HarmonyOS Next?

在今年的 HDC 2023 上,华为宣布了 HarmonyOS NEXT 开发者预览版。开发者如果想体验到 HarmonyOS NEXT,估计要等到明年的第一季度。

HarmonyOS NEXT 除了剥离掉 AOSP 之外,可能是完全只使用自家的 LiteOS 内核。

当然,决定一个系统是否成功,看得是这个系统的生态。如果一个操作系统,连几款像样的应用都没有,自然是不能算成功的。一个良性的操作系统生态,必然是一个广大软件厂商都愿意投入的生态。这也是为什么这么多年 Windows 在国内大行其道,主要还是因为那些国产的 Linux 系统始终没法提供完整的办公体验,比如像这些微信、QQ、Office 这类常用的软件,都没有很好在 Linux 系统上得到良好的支持。

从当前看,HarmonyOS 兼容 Android 就是一个非常成功的策略,即提升了自己的知名度,又能无缝接入 Android 生态。

HarmonyOS NEXT 何时能够成为主流?那就要看鸿蒙的生态何时能够真正的深入人心,看各大软件厂商投资鸿蒙的进度。不过好消息是,近日有消息称网易、美团等企业已经纷纷开辟了鸿蒙的开发岗位,同程旅行、宝宝巴士也宣布启动鸿蒙原生应用开发。相信未来鸿蒙的生态会越来越好。

HarmonyOS 编程语言的发展

前面铺垫了这么多,最终是为了回归到 “编程语言” 这个话题上来。HarmonyOS 的编程语言的发展,是随着 HarmonyOS 的发展而演进的。

早期的 HarmonyOS 支持的开发语言包括 JS(JavaScript)、C/C++。其中,JS 主要用于应用开发,而 C/C++ 主要用于设备开发。因为,早期的 HarmonyOS 只支持手表等智能穿戴设备,所以,用 JS 是能够胜任的。

从 HarmonyOS 2 开始,HarmonyOS 开始兼容 Android,引入了 Java 开发语言,能够支持手机、平板、智能穿戴、智慧屏、车机、PC、智能音箱、耳机、AR/VR 眼镜等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。此时的 HarmonyOS 才算真正意义上的 “鸿蒙操作系统”,因为已经具有 “鸿蒙操作系统” 的三大特征。

从 HarmonyOS 3 开始,引入了华为自研的 ArkTS 开发语言(前身是 eTS)、方舟编译器等。ArkTS 基于 TypeScript(简称 TS)语言扩展而来,是 TS 的超集。其最大的亮点是,ArkTS 在 TS 基础上主要扩展了声明式 UI 能力(即 ArkUI),让开发者以更简洁、更自然的方式开发高性能应用。

但比较遗憾的是,直到 HarmonyOS 4,ArkTS 开发语能实现的功能还是比较有限。甚至无法兑现 “鸿蒙操作系统” 三大特征的承诺。具体表现为

  • 不支持多设备,只支持 “Phone”;
  • 没有相机等功能的开发;
  • 没有平行视界;
  • 没有 AI 功能;
  • 没有流转、跨端迁移和多端协同;
  • 等等。

总之,ArkTS 现阶段上能实现的功能还不如 Java 强大。

HarmonyOS 编程语言的选择

在了解上述 HarmonyOS 编程语言的区别之后,相信各位对于 HarmonyOS 编程语言的选择有了自己的判断能力。学员可以综合考虑以下几个方面。

1、个人的偏好

开发者对于编程语言是有一定的偏好的,选 ArkTS 或是 Java 也是可以尊重个人的喜好。

如果你熟悉 Java 或者 Android 则可以选 Java;如果你熟悉 JS 或者 TS,就可以选 ArkTS。

2、职业的需要

如果想要实现一个强大的完整的 HarmonyOS 应用功能,那么现阶段只有 Java 能做到。ArkTS 还处在初级阶段。

如果你是纯粹想学习一门新语言,想不断跟随语言的演进,那么 ArkTS 也是不错的选择。从未来发展上看,HarmonyOS NEXT 有可能会将 ArkTS 作为主力开发语言。

3、我个人的选择

对于我个人而言,不做选择题,我全要,因为我个人职业决定了。Java 是我司以及大多数互联网公司的主力开发语言。无论是后台、前端、还是移动开发,Java 都能胜任大部分工作。所以学一门语言,能够解决公司项目里面大部分的问题,何乐而不为呢?

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (Harmony OS)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. 应用开发导读(Java)

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/255349.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Maven】未找到有效的 Maven 安装。在配置对话框中设置主目录,或者在系统上设置 M2_HOME 环境变量。

错误显示 今天导入工程,进行clean的时候报错: 解决方法 重新设置一下maven的目录即可

Leo赠书活动-12期 【Java程序员,你掌握了多线程吗?】文末送书

Leo赠书活动-12期 【Java程序员,你掌握了多线程吗?】文末送书 ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页&#xff1…

FreeRTOS系统延时函数分析

一、概述 FreeRTOS提供了两个系统延时函数,相对延时函数vTaskDelay()和绝对延时函数vTaskDelayUntil()。相对延时是指每次延时都是从任务执行函数vTaskDelay()开始,延时指定的时间结束,绝对延时是指每隔指定的时间,执行一次调用vT…

浅析AI智能视频监控技术在城市交通中的作用及意义

城市交通作为整个城市的整体脉络,每天都发挥着重要作用,为了最大程度地避免城市交通堵塞、提高城市交通效率,智能视频监控系统发挥了重要作用。具体表现在以下几个方面: 1、交通违规监管:TSINGSEE青犀智能视频监控系统…

【ESP32】手势识别实现笔记:红外温度阵列 | 双三次插值 | 神经网络 | TensorFlow | ESP-DL

目录 一、开发环境搭建与新建工程模板1.1、开发环境搭建与卸载1.2、新建工程目录1.3、自定义组件 二、驱动移植与应用开发2.1、I2C驱动移植与AMG8833应用开发2.2、SPI驱动移植与LCD应用开发2.3、绘制温度云图2.4、启用PSRAM(可选)2.5、画面动静和距离检测…

Linux基础作业1

课后练习: 案例1:ls命令练习 1.查看根目录下内容 2. 显示/etc目录内容 3. 显示/boot目录内容的 4. 显示/root的内容 5. 显示/bin/bash程序 6. 显示/opt目录内容 案例2:查看文件内容练习 查看/etc/passwd文件内容查看/etc/default/useradd…

Java集合大总结——Map的简单使用

现实需求 现实生活与开发中,我们常会看到这样的一类集合:用户ID与账户信息、学生姓名与考试成绩、IP地址与主机名等,这种一一对应的关系,就称作映射。Java提供了专门的集合框架用来存储这种映射关系的对象,即java.uti…

Java程序员,你掌握了多线程吗?

文章目录 01 多线程对于Java的意义02 为什么Java工程师必须掌握多线程03 Java多线程使用方式04 如何学好Java多线程写作末尾 摘要:互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流…

k8s-service 7

由控制器来完成集群的工作负载,service(微服务)是将工作负载的应用暴露出去,从而解决访问问题 作用:无论是在集群内还是集群外,都可以访问pod上的应用,其实现对集群内的应用pod自动发现和负载均…

欧洲原料药认证注册信息查询方法-CEP数据库

欧盟是全球最大、最重要的药品国际市场之一,药品需求市场非常庞大。中国药企要进入欧盟市场,必须获得CEP认证。 CEP认证与COS认证等同,均代表欧洲药典适应性证书 COS(Certificate of Suitability)是指欧洲药典适用性认…

Course2-Week3-使用机器学习的建议

Course2-Week3-使用机器学习的建议 文章目录 Course2-Week3-使用机器学习的建议1. 拆分原始训练集1.1 如何改进模型1.2 二拆分:训练集、测试集1.3 三拆分:训练集、验证集、测试集 2. 避免高偏差和高方差2.1 使用训练误差和验证误差进行分析2.2 选择合适的…