前言
今年1月18日,华为发布了鸿蒙OS星河版,是一个面向开发者的纯血鸿蒙OS预览版本。意味着今年华为将开始脱离安卓生态,纯血鸿蒙生态正式启动。同时,也确认HarmonyOS NEXT将在2024年四季度推出商用版本,与消费者正式见面。
截止目前鸿蒙生态设备增长至8亿,鸿蒙OS将打开万亿产业新蓝海,带来一轮巨大的市场机会。华为鸿蒙OS目前的影响力主要在国内,所以这个机会也将首先从国内市场拉开序幕。
国内市场的传统安卓应用面临三种应对策略:一是应用厂商自行迁移,这部分应该以国内厂商为主。据报导,目前已有超200家头部应用加速鸿蒙原生开发,年内有希望扩大到TOP5000家适配;二是观望,或是寄希望于华为可能会提供的侧载模式苟一段再看;三是缺乏信心,放弃国内鸿蒙市场。但做为开发者,不管是哪一种策略,都会需要大量的鸿蒙开发者迁移或者平替,是时候考虑再点一棵技能树了。
安卓与鸿蒙的差异
从宏观上看,鸿蒙OS(HarmonyOS)和安卓OS(Android OS)在设计理念、架构、兼容性等方面存在差异:
开发背景和设计理念
安卓OS:由谷歌开发,最初设计为面向智能手机的操作系统,后来扩展到平板电脑、电视、汽车等。它主要基于Linux内核,并且强调开放性和可定制性。
鸿蒙OS:由华为开发,旨在打造一个多设备统一的操作系统,适用于智能手机、平板、智能手表、车载系统甚至物联网设备。鸿蒙OS强调跨平台能力和流畅的多设备协作。
架构和技术
鸿蒙OS
-
微内核架构:
- 鸿蒙OS采用了微内核设计,这意味着其核心功能非常精简。微内核的优点在于提高了系统的安全性和可靠性,因为它减少了系统崩溃的风险,并且更易于维护和更新。
- 微内核还使得鸿蒙OS能够更容易地适应不同类型的设备,从智能手表到智能家居设备,甚至是汽车系统。
-
分布式技术:
- 鸿蒙OS专注于实现真正的跨设备功能,通过“分布式技术”实现设备间的无缝连接和协作。这意味着应用可以在不同设备之间更加流畅地移植和运行,为用户提供一致的体验。
-
编程语言和开发框架:
- 鸿蒙OS支持多种编程语言,当前主推ArkTS,同时JS辅助补充能力,曾经支持的Java已不再推荐、设备开发使用C/C++。提供了AI大模型、MindSpore AI框架、ArkUI/ArkUI-X、方舟编译器等能力,以上这些都旨在为开发者提供灵活性和开发效率。
安卓OS
-
宏内核架构:
- 安卓OS基于Linux内核,这是一种宏内核。宏内核包含了更多的功能和驱动程序,这使得系统功能更为全面,但可能会牺牲一定的安全性和效率。
- 安卓的这种设计支持了广泛的硬件设备,使其能够在各种不同的智能手机和平板电脑上运行。
-
基于Kotlin/Java的应用开发:
- 安卓应用主要使用Kotlin和Java语言开发。安卓提供了一套基于Java的丰富的应用开发框架,如:Activity,Service,Broadcast Receiver, Content Provider,WindowManager,SurfaceFlinger等,允许开发者创建各种复杂和功能丰富的应用。
综合来看,鸿蒙OS和安卓OS在技术和架构上有显著的区别,在应用迁移上还是会存在不小的工作量和众多的技术问题要解决,平滑就别想了。
兼容性和生态系统
安卓OS:拥有庞大的应用生态系统,几乎所有的智能手机制造商都有使用安卓系统的产品。安卓应用生态成熟,应用商店拥有极为丰富的应用资源。
鸿蒙OS:在兼容性方面,之前的鸿蒙OS支持运行经过轻微修改的安卓应用,但以后的纯血鸿蒙则是全新的应用生态。
市场定位和发展前景
安卓OS:作为目前全球最流行的移动操作系统,安卓在智能手机市场有着不可撼动的地位。
鸿蒙OS:作为期望中的安卓地位撼动者,虽然起步较晚,但鸿蒙OS在中国市场尤其受到关注,并且可能会逐渐在全球范围内对安卓形成竞争。华为在鸿蒙OS上的投资表明了其长期发展的决心。
总的来说,鸿蒙OS与安卓OS的主要区别在于它们的设计理念、技术架构、兼容性以及市场定位。鸿蒙OS致力于构建跨多种设备的统一体验,而安卓则主要集中在提供一个开放、可定制的智能手机操作系统。随着技术的发展和市场的变化,这些差异可能还会进一步演变。
开发者在两种平台上面临的问题
从开发者的角度来看,鸿蒙OS(HarmonyOS)和安卓OS(Android OS)各有其优势和劣势。这些看法通常基于操作系统的成熟度、开发工具、生态系统支持、市场潜力等因素。
鸿蒙OS
- 较小的用户基础:相比于安卓,鸿蒙OS目前的用户基础较小,这可能影响应用的受众范围和盈利潜力。
- 生态系统仍在成长中:鸿蒙OS的应用生态系统相对较新,可能缺乏某些类型的应用或库,给开发者带来额外的挑战。
- 市场不确定性:作为一个较新的操作系统,鸿蒙OS在全球市场的接受程度和未来前景仍有不确定性。
安卓OS
- 碎片化问题:安卓设备的多样性导致了系统的碎片化,开发者需要适应不同硬件、屏幕尺寸和系统版本。
- 安全和性能问题:由于其宏内核架构,安卓可能面临更多的安全挑战和性能限制。
- 卡脖子问题:华为这几年所抗争的A国技术卡脖子问题,也是所有的国产应用头顶上的达摩克利斯之剑,凡事都要想个万一……
这样看来,安卓OS有些像骄傲的中年成功人士,家大业大,但家宅不宁,还可能随时翻脸。而鸿蒙OS更像出山少年,双眼带刀,不肯求饶。这……那……,来看看要从安卓转鸿蒙,开发人员要做哪些准备吧。
转鸿蒙要做哪些准备
从安卓开发人员转向鸿蒙开发人员,虽然无法平滑过度,但只要对鸿蒙OS的特性、开发环境以及与安卓开发的区别有所准备,还是可以加快不少速度的:
-
了解鸿蒙OS的基本概念:
- 学习鸿蒙OS的架构,特别是它的微内核设计。
- 了解鸿蒙OS的设计理念,尤其是它的跨设备协同和分布式能力。
-
学习鸿蒙OS的开发环境和工具:
- 安装和熟悉DevEco Studio,这是华为为鸿蒙OS开发提供的官方集成开发环境(IDE)。
- 理解鸿蒙OS的应用框架和API,目前主要是v9和v10。
-
掌握鸿蒙OS的编程语言和框架:
- ArkTS必学,掌握ArkUI/ArkUI-X等框架。
- 至于盘古、MindSpore等,也可以适当进行了解。
-
从安卓到鸿蒙的代码迁移与适配:
- 在技术论坛了解迁移过程中的经验,也可以联系官方提供技术支持。
- 学习如何使用Ark Compiler,这是华为为提高应用性能开发的编译器。
-
测试和优化:
- 掌握DevEco Testing,学习如何在鸿蒙OS设备上测试和调试应用,确保应用在不同设备上都能良好运行。
- 优化应用性能,确保良好的用户体验。
-
学习鸿蒙技术:
首先得是开发语言 ArkTS,这个尤为重要,然后就是ArkUI声明式UI开发、Stage模型、网络/数据库管理、分布式应用开发、进程间通信与线程间通信技术、OpenHarmony多媒体技术……等。像中间还有许多的知识点,这边都以梳理成思维导图的形式了。
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的《鸿蒙开发学习笔记》,内容包含ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
【有需要的朋友,可以扫描下方二维码免费领取!!!】
快速入门
- 开发准备
- 构建第一个ArkTS应用(Stage模型)
- 构建第一个ArkTS应用(FA模型)
- 构建第一个JS应用(FA模型)
开发基础知识
- 应用程序包基础知识
- 应用配置文件(Stage模型)
- 应用配置文件概述(FA模型)
资源分类与访问
- 资源分类与访问
- 创建资源目录和资源文件
- 资源访问
学习ArkTs语言
- 初识ArkTS语言
- 基本语法
- 状态管理
- 其他状态管理
- 渲染控制
基于ArkTS声明式开发范式
- UI开发(ArkTS声明式开发范式)概述
- 开发布局
- 添加组件
- 显示图片
- 使用动画
- 支持交互事件
- 性能提升的推荐方法
兼容JS的类Web开发范式
- 概述
- 框架说明
- 构建用户界面
- 常见组件开发指导
- 动效开发指导
- 自定义组件
Web组件
- 概述
- 设置基本属性和事件
- 并发
- 窗口管理
- WebGL
- 媒体
- 安全
- 网络与连接
- 电话服务
- 数据管理
- …
应用模型
- 概述
- Stage模型开发指导
- FA模型开发指导
【有需要的朋友,可以扫描下方二维码免费领取!!!】
![](https://i-blog.csdnimg.cn/blog_migrate/85170e49794e17a9058ff338eb87d159.jpeg)
最后
转变过程中可能会遇到一些挑战,如适应新的开发环境、理解不同的API和架构等。但是,作为一名有经验的安卓开发人员,你已经拥有了很多可转化的技能和经验。通过持续学习和实践,你将能够顺利过渡并在鸿蒙OS的世界中找到自己的位置。