华为跟 Android 说再见,解读鸿蒙应用全部虚拟机化

hi 大家好,我是 DHL。大厂程序员,在美团、快手、小米工作过。公众号:ByteCode,分享有用的原创文章,涉及鸿蒙、Android、Java、Kotlin、性能优化、大厂面经

自从华为在 2023 开发者大会上,宣布 HarmonyOS NEXT 开发者预览版本,不在兼容 Android 之后,腾讯、网易、美团、京东、字节等等大厂陆续宣布加入鸿蒙应用生态,随后金融、旅行、社交领域企业也陆续宣布加入鸿蒙生态。华为在适配工作上取得了重大进展。

近日有一个火爆的全网的消息,鸿蒙系统要开始全面脱离安卓系统了,未适配鸿蒙系统的应用将全部转成虚拟机。

全部转成虚拟机是什么意思?

我在之前的文章说过,鸿蒙脱离 Android 势在必行,但是短期内并不会和 Android 一刀切,因为生态的建立是需要时间积累的。

相比于自研新系统,最难的是生态的建立,而生态的建立就需要各个行业的人,为你的新系统开发软件,如果没有人为你的系统开发办公软件那就不能用于工作,如果没有人为你的系统开发游戏、音乐等等软件,那么就不能用于娱乐,一个既不能用于办公,也不能用于娱乐的操作系统,试问那个消费者会去使用。

曾经微软要开发一个不兼容的版本 window vista,结果因为不兼容大家都放弃,最后 vista 失败被迫放弃,后来的 win7、win8、win10 都是向下兼容,能运行旧版本程序。这里有个最重要的原因就是软件的生态。

因此生态是非常重要的,鸿蒙短期内是无法达到 Android 这种生态水平,那么怎么办呢,所以鸿蒙前期为了自身的发展,在设计的时候,采用的是一个双框架架构设计,既可以安装鸿蒙应用,也可以安装 Android 应用。

但是也不能一直处于兼容状态,所以鸿蒙开始了第二步,未适配鸿蒙系统的应用将全部转成虚拟机。

也就是说如果想在鸿蒙操作系统(HarmonyOS)中运行那些原本不兼容鸿蒙系统的应用程序。鸿蒙操作系统可能会采用一种虚拟机技术,类似于安卓系统中的 ART(Android Runtime)或者早期的 Dalvik 虚拟机,来允许那些未经修改的 Android 应用在鸿蒙系统上运行。这种虚拟机会提供一个兼容层,模拟 Android 系统的环境,从而使得原本设计为 Android 平台的应用能够在鸿蒙系统上执行。

我初步猜测,这个过程可能会经过以下步骤,具体实现细节需要等官方揭晓。

  • 应用兼容性检查:系统会检查安装的应用是否直接兼容鸿蒙操作系统
  • 转换为虚拟机应用:对于那些不兼容的应用,系统会将它们转换为可以在虚拟机中运行的形式
  • 虚拟机执行:应用在虚拟机中运行,虚拟机提供了必要的安卓运行时环境,使应用能够正常工作,就像在安卓系统中一样

这种方式使得用户可以在鸿蒙操作系统中使用广泛的 Android 应用,而不必等待应用开发者发布专门为鸿蒙系统优化的版本。这对于新操作系统的用户采纳率和生态系统的快速发展至关重要。

需要注意的是,虚拟机中运行的应用可能在性能上不如原生兼容的应用流畅,因为额外的兼容层可能会引入一些性能开销。

我想说的

鸿蒙目前还处于初期发展阶段,网上对鸿蒙问题的解答太少了,而我在学习过程中也遇到了不少问题,花了不少时间去分析。有兴趣的小伙伴,可以看一下这篇文章,列举了我遇到的问题,以及解决方案。

相比于自己去摸索,通过与大家的沟通交流,效率会提高很多。所以我建一个鸿蒙学习交流群,诚邀各位小伙伴一起来打造一个良好的学习氛围沟通群。想入群小伙伴可以私信我

全文到这里就结束了,感谢你的阅读,如果文章对你有帮助,欢迎在看、点赞、分享给身边的朋友,你的点赞是我持续更新的动力。


Hi 大家好,我是 DHL,在美团、快手、小米工作过。公众号:ByteCode ,分享有用的原创文章,涉及鸿蒙、Android、Java、Kotlin、性能优化、大厂面经,真诚推荐你关注我。


最新文章


开源新项目

  • 云同步编译工具(SyncKit),本地写代码,远程编译,欢迎前去查看 SyncKit

  • KtKit 小巧而实用,用 Kotlin 语言编写的工具库,欢迎前去查看 KtKit

  • 最全、最新的 AndroidX Jetpack 相关组件的实战项目以及相关组件原理分析文章,正在逐渐增加 Jetpack 新成员,仓库持续更新,欢迎前去查看 AndroidX-Jetpack-Practice

  • LeetCode / 剑指 offer,包含多种解题思路、时间复杂度、空间复杂度分析,在线阅读

相关推荐
HerayChen26 分钟前
HbuildderX运行到手机或模拟器的Android App基座识别不到设备 mac
android·macos·智能手机
顾北川_野27 分钟前
Android 手机设备的OEM-unlock解锁 和 adb push文件
android·java
hairenjing112329 分钟前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
GIS程序媛—椰子42 分钟前
【Vue 全家桶】7、Vue UI组件库(更新中)
前端·vue.js
DogEgg_0011 小时前
前端八股文(一)HTML 持续更新中。。。
前端·html
ZL不懂前端1 小时前
Content Security Policy (CSP)
前端·javascript·面试
小黄人软件1 小时前
android浏览器源码 可输入地址或关键词搜索 android studio 2024 可开发可改地址
android·ide·android studio
木舟10091 小时前
ffmpeg重复回听音频流,时长叠加问题
前端
王大锤43911 小时前
golang通用后台管理系统07(后台与若依前端对接)
开发语言·前端·golang
dj15402252031 小时前
group_concat配置影响程序出bug
android·bug