Android开发能够顺滑的转纯血鸿蒙应用开发吗?_android开发转鸿蒙开发-程序员宅基地

技术标签: 华为  android  鸿蒙  鸿蒙系统  harmonyos  

前言

今年1月18日,华为发布了鸿蒙OS星河版,是一个面向开发者的纯血鸿蒙OS预览版本。意味着今年华为将开始脱离安卓生态,纯血鸿蒙生态正式启动。同时,也确认HarmonyOS NEXT将在2024年四季度推出商用版本,与消费者正式见面。

截止目前鸿蒙生态设备增长至8亿,鸿蒙OS将打开万亿产业新蓝海,带来一轮巨大的市场机会。华为鸿蒙OS目前的影响力主要在国内,所以这个机会也将首先从国内市场拉开序幕。

国内市场的传统安卓应用面临三种应对策略:一是应用厂商自行迁移,这部分应该以国内厂商为主。据报导,目前已有超200家头部应用加速鸿蒙原生开发,年内有希望扩大到TOP5000家适配;二是观望,或是寄希望于华为可能会提供的侧载模式苟一段再看;三是缺乏信心,放弃国内鸿蒙市场。但做为开发者,不管是哪一种策略,都会需要大量的鸿蒙开发者迁移或者平替,是时候考虑再点一棵技能树了。

在这里插入图片描述

安卓与鸿蒙的差异

从宏观上看,鸿蒙OS(HarmonyOS)和安卓OS(Android OS)在设计理念、架构、兼容性等方面存在差异:

开发背景和设计理念

安卓OS:由谷歌开发,最初设计为面向智能手机的操作系统,后来扩展到平板电脑、电视、汽车等。它主要基于Linux内核,并且强调开放性和可定制性。

鸿蒙OS:由华为开发,旨在打造一个多设备统一的操作系统,适用于智能手机、平板、智能手表、车载系统甚至物联网设备。鸿蒙OS强调跨平台能力和流畅的多设备协作。

架构和技术

鸿蒙OS

  1. 微内核架构

    • 鸿蒙OS采用了微内核设计,这意味着其核心功能非常精简。微内核的优点在于提高了系统的安全性和可靠性,因为它减少了系统崩溃的风险,并且更易于维护和更新。
    • 微内核还使得鸿蒙OS能够更容易地适应不同类型的设备,从智能手表到智能家居设备,甚至是汽车系统。
  2. 分布式技术

    • 鸿蒙OS专注于实现真正的跨设备功能,通过“分布式技术”实现设备间的无缝连接和协作。这意味着应用可以在不同设备之间更加流畅地移植和运行,为用户提供一致的体验。
  3. 编程语言和开发框架

    • 鸿蒙OS支持多种编程语言,当前主推ArkTS,同时JS辅助补充能力,曾经支持的Java已不再推荐、设备开发使用C/C++。提供了AI大模型、MindSpore AI框架、ArkUI/ArkUI-X、方舟编译器等能力,以上这些都旨在为开发者提供灵活性和开发效率。

安卓OS

  1. 宏内核架构

    • 安卓OS基于Linux内核,这是一种宏内核。宏内核包含了更多的功能和驱动程序,这使得系统功能更为全面,但可能会牺牲一定的安全性和效率。
    • 安卓的这种设计支持了广泛的硬件设备,使其能够在各种不同的智能手机和平板电脑上运行。
  2. 基于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

  1. 较小的用户基础:相比于安卓,鸿蒙OS目前的用户基础较小,这可能影响应用的受众范围和盈利潜力。
  2. 生态系统仍在成长中:鸿蒙OS的应用生态系统相对较新,可能缺乏某些类型的应用或库,给开发者带来额外的挑战。
  3. 市场不确定性:作为一个较新的操作系统,鸿蒙OS在全球市场的接受程度和未来前景仍有不确定性。

安卓OS

  1. 碎片化问题:安卓设备的多样性导致了系统的碎片化,开发者需要适应不同硬件、屏幕尺寸和系统版本。
  2. 安全和性能问题:由于其宏内核架构,安卓可能面临更多的安全挑战和性能限制。
  3. 卡脖子问题:华为这几年所抗争的A国技术卡脖子问题,也是所有的国产应用头顶上的达摩克利斯之剑,凡事都要想个万一……

这样看来,安卓OS有些像骄傲的中年成功人士,家大业大,但家宅不宁,还可能随时翻脸。而鸿蒙OS更像出山少年,双眼带刀,不肯求饶。这……那……,来看看要从安卓转鸿蒙,开发人员要做哪些准备吧。

在这里插入图片描述

转鸿蒙要做哪些准备

从安卓开发人员转向鸿蒙开发人员,虽然无法平滑过度,但只要对鸿蒙OS的特性、开发环境以及与安卓开发的区别有所准备,还是可以加快不少速度的:

  1. 了解鸿蒙OS的基本概念

    • 学习鸿蒙OS的架构,特别是它的微内核设计。
    • 了解鸿蒙OS的设计理念,尤其是它的跨设备协同和分布式能力。
  2. 学习鸿蒙OS的开发环境和工具

    • 安装和熟悉DevEco Studio,这是华为为鸿蒙OS开发提供的官方集成开发环境(IDE)。
    • 理解鸿蒙OS的应用框架和API,目前主要是v9和v10。
  3. 掌握鸿蒙OS的编程语言和框架

    • ArkTS必学,掌握ArkUI/ArkUI-X等框架。
    • 至于盘古、MindSpore等,也可以适当进行了解。
  4. 从安卓到鸿蒙的代码迁移与适配

    • 在技术论坛了解迁移过程中的经验,也可以联系官方提供技术支持。
    • 学习如何使用Ark Compiler,这是华为为提高应用性能开发的编译器。
  5. 测试和优化

    • 掌握DevEco Testing,学习如何在鸿蒙OS设备上测试和调试应用,确保应用在不同设备上都能良好运行。
    • 优化应用性能,确保良好的用户体验。
  6. 学习鸿蒙技术
    首先得是开发语言 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模型开发指导
    在这里插入图片描述
【有需要的朋友,可以扫描下方二维码免费领取!!!】

最后

转变过程中可能会遇到一些挑战,如适应新的开发环境、理解不同的API和架构等。但是,作为一名有经验的安卓开发人员,你已经拥有了很多可转化的技能和经验。通过持续学习和实践,你将能够顺利过渡并在鸿蒙OS的世界中找到自己的位置。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/star_nwe/article/details/135889241

智能推荐

874计算机科学基础综合,2018年四川大学874计算机科学专业基础综合之计算机操作系统考研仿真模拟五套题...-程序员宅基地

文章浏览阅读1.1k次。一、选择题1. 串行接口是指( )。A. 接口与系统总线之间串行传送,接口与I/0设备之间串行传送B. 接口与系统总线之间串行传送,接口与1/0设备之间并行传送C. 接口与系统总线之间并行传送,接口与I/0设备之间串行传送D. 接口与系统总线之间并行传送,接口与I/0设备之间并行传送【答案】C2. 最容易造成很多小碎片的可变分区分配算法是( )。A. 首次适应算法B. 最佳适应算法..._874 计算机科学专业基础综合题型

XShell连接失败:Could not connect to '192.168.191.128' (port 22): Connection failed._could not connect to '192.168.17.128' (port 22): c-程序员宅基地

文章浏览阅读9.7k次,点赞5次,收藏15次。连接xshell失败,报错如下图,怎么解决呢。1、通过ps -e|grep ssh命令判断是否安装ssh服务2、如果只有客户端安装了,服务器没有安装,则需要安装ssh服务器,命令:apt-get install openssh-server3、安装成功之后,启动ssh服务,命令:/etc/init.d/ssh start4、通过ps -e|grep ssh命令再次判断是否正确启动..._could not connect to '192.168.17.128' (port 22): connection failed.

杰理之KeyPage【篇】_杰理 空白芯片 烧入key文件-程序员宅基地

文章浏览阅读209次。00000000_杰理 空白芯片 烧入key文件

一文读懂ChatGPT,满足你对chatGPT的好奇心_引发对chatgpt兴趣的表述-程序员宅基地

文章浏览阅读475次。2023年初,“ChatGPT”一词在社交媒体上引起了热议,人们纷纷探讨它的本质和对社会的影响。就连央视新闻也对此进行了报道。作为新传专业的前沿人士,我们当然不能忽视这一热点。本文将全面解析ChatGPT,打开“技术黑箱”,探讨它对新闻与传播领域的影响。_引发对chatgpt兴趣的表述

中文字符频率统计python_用Python数据分析方法进行汉字声调频率统计分析-程序员宅基地

文章浏览阅读259次。用Python数据分析方法进行汉字声调频率统计分析木合塔尔·沙地克;布合力齐姑丽·瓦斯力【期刊名称】《电脑知识与技术》【年(卷),期】2017(013)035【摘要】该文首先用Python程序,自动获取基本汉字字符集中的所有汉字,然后用汉字拼音转换工具pypinyin把所有汉字转换成拼音,最后根据所有汉字的拼音声调,统计并可视化拼音声调的占比.【总页数】2页(13-14)【关键词】数据分析;数据可..._汉字声调频率统计

linux输出信息调试信息重定向-程序员宅基地

文章浏览阅读64次。最近在做一个android系统移植的项目,所使用的开发板com1是调试串口,就是说会有uboot和kernel的调试信息打印在com1上(ttySAC0)。因为后期要使用ttySAC0作为上层应用通信串口,所以要把所有的调试信息都给去掉。参考网上的几篇文章,自己做了如下修改,终于把调试信息重定向到ttySAC1上了,在这做下记录。参考文章有:http://blog.csdn.net/longt..._嵌入式rootfs 输出重定向到/dev/console

随便推点

uniapp 引入iconfont图标库彩色symbol教程_uniapp symbol图标-程序员宅基地

文章浏览阅读1.2k次,点赞4次,收藏12次。1,先去iconfont登录,然后选择图标加入购物车 2,点击又上角车车添加进入项目我的项目中就会出现选择的图标 3,点击下载至本地,然后解压文件夹,然后切换到uniapp打开终端运行注:要保证自己电脑有安装node(没有安装node可以去官网下载Node.js 中文网)npm i -g iconfont-tools(mac用户失败的话在前面加个sudo,password就是自己的开机密码吧)4,终端切换到上面解压的文件夹里面,运行iconfont-tools 这些可以默认也可以自己命名(我是自己命名的_uniapp symbol图标

C、C++ 对于char*和char[]的理解_c++ char*-程序员宅基地

文章浏览阅读1.2w次,点赞25次,收藏192次。char*和char[]都是指针,指向第一个字符所在的地址,但char*是常量的指针,char[]是指针的常量_c++ char*

Sublime Text2 使用教程-程序员宅基地

文章浏览阅读930次。代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大、灵活的编辑器,相信你和我一样,都不会例外。我用过的编辑器不少,真不少~ 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号。它小巧绿色且速度非

对10个整数进行按照从小到大的顺序排序用选择法和冒泡排序_对十个数进行大小排序java-程序员宅基地

文章浏览阅读4.1k次。一、选择法这是每一个数出来跟后面所有的进行比较。2.冒泡排序法,是两个相邻的进行对比。_对十个数进行大小排序java

物联网开发笔记——使用网络调试助手连接阿里云物联网平台(基于MQTT协议)_网络调试助手连接阿里云连不上-程序员宅基地

文章浏览阅读2.9k次。物联网开发笔记——使用网络调试助手连接阿里云物联网平台(基于MQTT协议)其实作者本意是使用4G模块来实现与阿里云物联网平台的连接过程,但是由于自己用的4G模块自身的限制,使得阿里云连接总是无法建立,已经联系客服返厂检修了,于是我在此使用网络调试助手来演示如何与阿里云物联网平台建立连接。一.准备工作1.MQTT协议说明文档(3.1.1版本)2.网络调试助手(可使用域名与服务器建立连接)PS:与阿里云建立连解释,最好使用域名来完成连接过程,而不是使用IP号。这里我跟阿里云的售后工程师咨询过,表示对应_网络调试助手连接阿里云连不上

<<<零基础C++速成>>>_无c语言基础c++期末速成-程序员宅基地

文章浏览阅读544次,点赞5次,收藏6次。运算符与表达式任何高级程序设计语言中,表达式都是最基本的组成部分,可以说C++中的大部分语句都是由表达式构成的。_无c语言基础c++期末速成