当前位置: 首页 > news >正文

鸿蒙开发与Android开发对比

目录

1. 开发环境与工具

2. 应用架构

3.UI绘制对比

4. 开发语言

5. 分布式能力

6. 生态系统

7. 性能与优化

8. 开源与控制


1. 开发环境与工具

鸿蒙开发
使用HarmonyOS SDK,集成开发环境通常推荐使用DevEco Studio。
目前支持的语言只有ArkTs和C/C++。
开发者需要熟悉HarmonyOS的API和组件库。
Android开发
使用Android Studio作为主要IDE,支持Java、Kotlin、C/C++以及最近的Jetpack Compose。
Android SDK包含了开发所需的所有工具和库,API文档丰富。


2. 应用架构

鸿蒙开发
基于Ability模型,分为Service Ability、Page Ability和Device Ability,强调分布式能力。
使用模块化和组件化设计,支持跨设备部署。
Android开发
基于Activity和Fragment,配合Intent进行组件间通信。
Android Jetpack提供了一系列可组合的组件来构建现代Android应用。

3.UI绘制对比

UI绘制方面鸿蒙开发使用的是ArkTs语言进行声明式布局,可能有的小伙伴不清楚什么是声明式布局,甚至有的Android开发的小伙伴不明白啥事声明式布局,这个就可能和知识面有关系了,其实目前前端基本都是声明式布局,用状态控制界面的绘制,如果是Android开发的小伙伴还在用xml的布局方式,则不会理解这种声明式布局方式,其实Android中google在推的Compose也是声明式布局,用状态来改变界面,所以我觉得UI绘制方面如果是拿ArkTs与Compose对比的话基本大差不差,而要是拿ArkTs与xml布局对比的话则差别大了,所以我认为布局绘制方面应用层其实是差不多的,思想上是一致的,使用也比较类似


4. 开发语言

鸿蒙开发
前期主推JavaScript Framework(JSF)进行UI和业务逻辑开发,同时也支持Java和Kotlin,当前的纯血鸿蒙开发只能使用ArkTs语言进行开发。
C/C++用于底层性能关键部分的开发。
Android开发
Java和Kotlin是主要的开发语言,Java曾是传统选择,Kotlin现在被广泛推荐并成为首选。
C/C++可用于NDK开发,处理高性能计算或原生库。


5. 分布式能力

鸿蒙开发
强调全场景、跨设备的分布式能力,允许应用在不同设备间无缝流转。
分布式软总线实现设备间的互联互通。
Android开发
通常需要自定义解决方案来实现跨设备功能,例如多设备协作或投屏。
Google Cast和 Nearby Connections 提供了一些基础的跨设备交互功能。


6. 生态系统

鸿蒙开发
相对年轻的生态系统,依赖华为及合作伙伴推动应用开发和用户普及。
HMS Core提供服务套件,类似于Google的GMS,但适用于鸿蒙系统。
Android开发
具有庞大的开发者社区和丰富的应用市场,Google Play商店提供大量应用。
Google Play Services (GMS) 提供核心服务,如身份验证、地图、推送通知等。


7. 性能与优化

鸿蒙开发
宣称运行速度较快,据称比Android快约60%。
优化了系统内核和框架,减少资源占用,提升响应速度。
Android开发
性能取决于硬件和优化程度,Android系统广泛应用于各种设备,性能表现各异。
通过持续的系统更新和硬件优化,Android也在不断追求性能提升。


8. 开源与控制

鸿蒙开发
HarmonyOS是闭源的,OpenHarmony是开源的。这块可以参考OpenHarmony与HarmonyOS联系与区别_openharmony和鸿蒙的关系-CSDN博客
华为掌控生态,对开发者有更直接的影响。
Android开发
完全基于开源项目AOSP,任何人都可以自由使用和修改。
谷歌通过Google Play Store和服务控制部分生态。


总结,鸿蒙和Android在开发体验、生态系统和目标市场等方面存在显著差异,开发者在选择时需考虑这些因素以及各自的项目需求。


http://www.mrgr.cn/news/60350.html

相关文章:

  • 关于ETL的两种架构(ETL架构和ELT架构)
  • Spring Boot框架中的IO
  • uniapp 报错Invalid Host header
  • 【C++习题】2.仅仅反转字母
  • [专有网络VPC]创建和管理网络ACL
  • 基于大数据 Python+Vue 旅游推荐可视化系统(源码+LW+部署讲解+数据库+ppt)
  • 怎么在抖音视频里标注店铺定位信息?
  • 【深搜算法】(第六篇)
  • 新股友一开始能赚钱,背后有哪些原因?
  • 解决风电运维难困局?8K风机叶片巡检有妙用
  • 什么是服务器?服务器与客户端的关系?本地方访问不了网址与服务器访问不了是什么意思?有何区别
  • 自动化网络部署(paramiko,Netmiko)
  • Linux CentOS7下创建SFTP服务器
  • 牛客周赛65(C++实现)
  • 探秘计算机网络:网络流量分析与 TCP 标志位解析
  • 1.机器人抓取与操作介绍-深蓝学院
  • 匹配正确率提升187.9%!华中科技大学CGCL实验室用自监督学习助力胶囊内窥镜图像拼接,「天眼」里也可看肠胃健康
  • 【yashandb】初体验
  • matlab实现了一个基于粒子群优化(PSO)算法的程序,用于寻找一种三层材料结构的最佳配置
  • 遗传算法与深度学习实战(20)——使用进化策略自动超参数优化
  • Django+Vue全栈开发项目入门(二)
  • 09DSP学习-F28379D发送浮点数 Vofa+接收数据 使用JustFLoat数据引擎
  • 中科院分区表能不能查SSCI分区?该怎么查?
  • 队列的实现(单链表)
  • 重采样方法(交叉验证法)——基于glm与LOOCV法(Weekly数据集分析)
  • C++-继承