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在开发体验、生态系统和目标市场等方面存在显著差异,开发者在选择时需考虑这些因素以及各自的项目需求。