HarmonyOS 开发 Java 与 ArkTS 如何抉择?

news/2024/7/21 10:36:14 标签: 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.niftyadmin.cn/n/5247270.html

相关文章

AWS EC2使用 instance profile 访问S3

AWS EC2 instance可以使用instance profile 配置访问S3的权限。 然后就可以直接在EC2上执行 python代码或者AWS CLI去访问S3了。 唯一需要注意的地方是,申明region。 示例代码: aws s3 ls xxxx-s3-bucket --region xxx-region import boto3 client …

Java语言概述及保姆级入门教程(JDK 17版本)

笔记来自尚硅谷老师-康老师 学习教程:https://www.bilibili.com/video/BV1PY411e7J6/?spm_id_from333.337.search-card.all.click 1、Java基础全程脉络图 1.1 本章专题与脉络 2. 抽丝剥茧话Java 2.1 当前大学生就业形势 麦可思研究院发布了《2022年中国大学生就业…

【C语言】7-32 刮刮彩票 分数 20

7-32 刮刮彩票 分数 20 全屏浏览题目 切换布局 作者 DAI, Longao 单位 杭州百腾教育科技有限公司 “刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示: 每次游戏玩家会拿到一张彩票,上面会有 9 个数字,分别为数字 1 到数字 9&#xf…

ElasticSearch中的分片是什么?

在Elasticsearch中,分片(Shards)是Elasticsearch中的一个核心概念。分片是Elasticsearch数据的基本单位,每个索引在创建时都会被分成多个分片,这些分片保存在不同的节点上,这样能提供高可用性和负载均衡。 …

免费接口汇总,为程序员节省开发成本

最近整理的好用免费API接口,赶紧收藏起来吧! 短信验证码:可用于登录、注册、找回密码、支付认证等等应用场景。支持三大运营商,3秒可达,99.99%到达率,支持大容量高并发。通知短信:当…

对Spring源码的学习:一

目录 BeanFactory开发流程 ApplicationContext BeanFactory与ApplicationContext对比 基于XML方式的Bean的配置 自动装配 BeanFactory开发流程 这里的第三方指的是Spring提供的BeanFactory,Spring启动时会初始化BeanFactory,然后读取配置清单&#…

Linux Camera Driver(2):CIS设备注册(DTS)

一:MIPI接口 1、硬件接口 MIPI接口以rv1109和gc2053的硬件为例进行说明: 2、ISP驱动 注意配置事项: endpoint配置,必须指定data-lanes,否则无法识别为mipi类型 链接方式:sensor->csi_dphy->isp->ispp (1)sensor节点配置 根据原理图可知:mipicsi_clk0即引…

柏林噪声C++

柏林噪声 随机噪声 如上图所示随机噪声没有任何规律可言,我们希望生成有一些意义的局部连续的随机图案 一维柏林噪声 假设希望生成一段局部连续的随机曲线,可以采用插值的方式:在固定点随机分配y值(一般是整数点)&a…