问题

鸿蒙系统要去除AOSP里的代码,那么没有AOSP是如何做到兼容安卓应用的呢?

回答
鸿蒙系统(HarmonyOS)旨在构建一个万物互联的智能终端操作系统,其核心理念与传统的安卓系统存在显著差异。在华为的规划中,鸿蒙系统需要实现对海量安卓应用的兼容,这在去除AOSP(Android Open Source Project)代码的背景下,无疑是一项极具挑战性的任务。那么,在没有AOSP的情况下,鸿蒙系统又是如何做到对安卓应用的兼容呢?这背后涉及一系列复杂的技术设计和策略。

理解鸿蒙与AOSP的关系

首先,需要明确一点:并非所有的鸿蒙版本都完全摒弃了AOSP。在鸿蒙初期,特别是面向手机等智能终端的版本,为了快速建立生态和提供用户熟悉的体验,华为在鸿蒙系统底层仍然保留了部分与Android兼容相关的组件。这是一种渐进式演进的策略。但从长远来看,华为的目标是构建一个独立于AOSP的、统一的鸿蒙内核和基础能力。

当我们讨论“去除AOSP代码”时,更准确的说法是,鸿蒙系统在核心基础能力层和应用运行环境层上,正在逐步摆脱对AOSP的直接依赖,转而构建一套独立自主的技术栈。这种摆脱并非意味着完全抛弃安卓应用的运行能力,而是通过兼容层(Compatibility Layer)来实现。

兼容层:连接鸿蒙与安卓世界的桥梁

鸿蒙系统实现安卓应用兼容的关键,就在于其构建的“兼容层”。这个兼容层可以被理解为一套独立的软件栈,它模仿并实现了Android应用运行所需的关键接口和能力,使得原本为Android设计的应用能够理解并执行。

具体来说,这个兼容层主要包含以下几个核心组成部分:

1. 应用框架(Application Framework)的模拟与替换:
Activity Manager, Service Manager, Broadcast Receiver等: Android应用通过这些系统服务来管理应用的生命周期、启动组件、发送广播等。鸿蒙在兼容层会模拟这些服务的行为,创建一个可以被安卓应用调用的“代理”。例如,当一个安卓应用尝试启动一个Activity时,兼容层会拦截这个请求,并将其转换为鸿蒙系统能够理解并执行的指令。
Intent机制: Intent是Android中用于组件间通信的“意图”对象。兼容层需要解析和处理这些Intent,将它们路由到鸿蒙系统中的相应组件或服务。
Content Provider: 安卓应用通过Content Provider来共享数据。鸿蒙的兼容层需要提供一个与Android Content Provider兼容的接口,允许安卓应用访问数据。

2. JVM/ART运行时环境的封装与适配:
Dalvik/ART虚拟机: 大部分安卓应用是以Java或Kotlin编写,最终会被编译成Dalvik Executable(DEX)格式的字节码,并在Dalvik或ART虚拟机上运行。虽然鸿蒙拥有自己的ArkUI等UI框架和ArkRuntime等运行时,但为了兼容安卓应用,它需要提供一个能够执行DEX文件的环境。
ArkRuntime与DEX执行: 在一些版本的鸿蒙系统中,华为通过将Dalvik或ART虚拟机的部分功能集成到ArkRuntime中,或者提供一个独立的虚拟机进程来执行DEX文件。这使得鸿蒙可以运行原本为Android设计的Java/Kotlin代码。这并非是“运行Android系统”,而是“运行Android应用在鸿蒙提供的虚拟机环境里”。

3. 系统API的兼容与映射:
Android SDK API的模拟: Android应用依赖于大量的Android SDK提供的API来实现各种功能,例如文件管理、网络通信、图形渲染、传感器访问、媒体播放等等。鸿蒙的兼容层会尽力复现这些Android API。这意味着,当一个安卓应用调用一个特定的Android API时,兼容层会捕获这个调用,然后将其“翻译”成鸿蒙系统底层提供的等效功能。
Native API(C/C++)的适配: 除了Java/Kotlin层,很多Android应用也使用C/C++编写了Native库。鸿蒙需要处理这些Native库的兼容问题,包括ABI(Application Binary Interface)的兼容以及对底层系统调用的映射。

4. 图形渲染与UI的兼容:
SurfaceFlinger/WindowManager等: Android应用将UI绘制到屏幕上,这涉及到SurfaceFlinger等系统服务。鸿蒙需要提供一个与Android UI渲染流程兼容的接口,以确保安卓应用的UI能够正确地显示在鸿蒙设备上。这可能涉及到对Graphics库(如Skia)的适配和对鸿蒙自身图形渲染管线的集成。
UI组件的映射: Android有其特定的UI组件(如Button, TextView, ListView等)。鸿蒙在兼容层需要提供这些组件的模拟,或者将其映射到鸿蒙自有的UI组件上,以保证应用界面能够正常渲染。

5. 硬件抽象层(HAL)的兼容:
设备驱动的交互: Android应用通过HAL与硬件进行交互。鸿蒙需要提供一个能够与Android HAL接口兼容的层,或者将Android应用的HAL调用映射到鸿蒙自身的硬件接口。例如,当一个安卓应用调用相机API时,兼容层需要将这个请求传递给鸿蒙系统中的相机服务,再由相机服务通过其硬件驱动来执行。

关键技术实现细节:

Dex2Hap工具: 对于将安卓应用的.apk文件转换为鸿蒙的.hap(Harmony App Package)文件,华为提供了专门的工具链。这个工具链可以将DEX文件转换成鸿蒙可执行的格式,并处理其他资源文件的适配。
ArkTs/ArkUI的优势: 虽然兼容层主要为了运行安卓应用,但鸿蒙本身强大的ArkUI和ArkTs技术栈为开发者提供了更高效、更现代的开发体验。在某些场景下,开发者也可以选择将他们的安卓应用迁移到鸿蒙原生开发,以获得更好的性能和体验。
微内核与多内核: 鸿蒙的微内核设计(如鸿蒙内核,HarmonyOS Kernel)以及对不同设备形态(手机、手表、电视、车机等)支持的多内核策略,也意味着兼容层需要在不同的内核和硬件环境下都能稳定工作。

挑战与权衡:

实现这一兼容性并非易事,也伴随着一些挑战和权衡:

性能损耗: 通过兼容层运行安卓应用,通常会比原生鸿蒙应用有一定程度的性能损耗,因为需要额外的转换和模拟过程。
兼容性不完美: 并不是所有复杂的安卓应用都能100%完美兼容。某些依赖于特定Android系统深度集成或特殊硬件接口的应用,可能会遇到兼容性问题。
更新维护成本: 随着Android版本的不断更新,鸿蒙需要持续更新其兼容层以支持新版本的API和特性,这需要巨大的技术投入。
生态独立性: 完全脱离AOSP并自主构建生态是一个长期目标,兼容层在初期是必要的过渡手段,但最终鸿蒙希望通过自身的技术和应用吸引开发者转向原生鸿蒙应用开发。

总结

鸿蒙系统在去除AOSP代码的前提下实现安卓应用兼容,核心是通过一套精巧且功能强大的兼容层。这层兼容层模拟了Android应用运行所需的核心框架、运行时环境、系统API和部分硬件接口,从而使得原本为Android设计的应用能够理解并执行。它扮演着连接鸿蒙与安卓应用世界的桥梁角色,是鸿蒙在早期快速构建生态、吸引用户和开发者的关键策略。虽然这带来了技术上的挑战和潜在的性能权衡,但它也为鸿蒙系统向一个独立自主、万物互联的智能操作系统发展奠定了基础,并为开发者提供了从Android生态迁移到鸿蒙生态的平滑过渡路径。

网友意见

user avatar

完全做不到

今年 10 月,鸿蒙第三阶段的开源代码会上线,来自 AOSP 社区的、由 Google 贡献的代码几乎没有了。 - 王成录

任何结论都是有前提的,所以补充的严谨一点,在不重新定义“几乎”这个词,所谓三阶段指手机上推送的鸿蒙系统的前提下,王博士的话绝对做不到,在Google正式发布并大力推广替代安卓的下一代手机OS (目前是叫Fuchsia)以前,在技术和商业的双重考虑下,鸿蒙绝对做不到去除AOSP同时兼容APK。

再补充一个去掉AOSP的标准,10月份推送的手机鸿蒙里不包含AOSP的开源许可协议,这个标准足够明确和清晰,外行也可以自行拿来做判断。

有很多回答讲了技术上的可行性,列举了wine / wsl 1(windows sublinux 1)的例子。

套在鸿蒙上是完全不成立的,因为抛开商业单纯的讲技术没有任何意义,现实世界也不是单靠技术做决策的。

wine是什么?[1]

Wine 将会永远是自由软件。 大约一半的 Wine 代码由志愿者编写,其余部分由商业公司赞助

同时wine还有一个提供技术支持的收费版本 CrossOver[2],但是这也不是为了盈利的而是为了帮助免费版本更好的发展筹集资金。

CrossOver 是由 CodeWeavers 提供的一个经过打磨的 Wine。CrossOver 使得 Wine 更易于使用,同时 CodeWeavers 为用户提供了极好的技术支持。所有 CrossOver 的销售收入都将被直接用于支持 Wine 开发者。所以使用 CrossOver 可谓一举两得,您在得到使用 Wine 的帮助的同时也可以帮助 Wine 项目的发展。

所以wine以及其收费版在面向消费者市场上商业价值是基本不存在的。

Windows sublinux 1[3] 同样自身是没有商业价值的,世界上99.9%的人买windows根本不关心wsl,不知道wsl,不会用wsl。

正是因为这两个软件基本没有消费者市场商业价值,而是用爱发电做为给Geek们的福利开发的,他们存在的各种兼容性问题是可以被接受的,而wine几十年的发展,加上wsl1的兼容技术基本上已经被官方放弃转而使用wsl2的hyper-v虚拟技术,从实践上证明了“兼容”这条路的技术难度之大。

同时分析下Google自家开发的FuchsiaOS在兼容android的方案[4]

How exactly Fuchsia will use the Android Runtime from there is still unclear. This is includes whether the Android Runtime is able to work as expected to replace Linux kernel calls with equivalents from Fuchsia's Zircon kernel or if ART will run inside of a Linux virtual machine using Machina, Fuchsia’s virtual machine system

目前兼容方案是不确定的,但Fuchsia肯定也是面向消费者市场的,如果走独立兼容的路,目前猜测做不到完美兼容,如果做到了那可以说是一个里程碑级别的成就,至少在我心里可以证明Google技术太阳系第一,跟其他科技公司不在一个档次上。如果是使用虚拟机兼容,性能损失必不可免,性能超出60%这话不是能经过人类大脑说出来的。无论哪条路,Google都要大力发展新系统原生生态,尽最大的可能减少兼容安卓在新系统商业价值中的占比。

但是对于鸿蒙来说,要兼容就必须完美兼容,否则商业价值完全不能成立,鸿蒙不是用爱发电的,是拿来跟手机一起在消费者市场卖钱的。想走google新系统的路? 那鸿蒙需要先让google做出来不基于安卓的纯鸿蒙GMS(主要包含google map,youtube等)来实现国外市场的去安卓兼容核心商业价值化,同时在国内让微信,高德,百度,阿里都推出非安卓的纯鸿蒙应用,在此之前必须要完美兼容APK。这些问题对于鸿蒙来说,发生的概率不足万一,但是对 Google来说没这个烦恼,Google的口碑在那,它要是出个新系统,国内外公司抢着去开放软件呢,哪怕微软做死的WP,在对开发者无数背刺的情况下,最主要的微信支付宝这些应用国内都还是愿意跟进的。鸿蒙?对不起,见到第一个纯鸿蒙微信以前我是绝对不会相信的。

以上论证了兼容的技术难度,华为必须完美兼容的必要性,可以得出结论,“去除AOSP代码又完美兼容APK应用”是华为做不到的。其技术难度之大,是目前地球上任何一家公司都做不到的不是华为的技术能力不够,Google自己也做不到,微软也做不到(win 11兼容安卓据说也是虚拟机的路,而且据说不能完美兼容,为什么据说?因为还没试用过不能确定,欢迎指正)。

为了防杠再绕回去重复说一句,别问"那华为不完美兼容不就行了吗?" 对不起,鸿蒙没有不完美兼容这个选项,具体论证在上上段。

综上得出结论,在现实世界里,鸿蒙去掉AOSP代码并兼容APK这条路,是行不通的。注意这个结论里并没有完美二字,是结合的商业的技术两方面综合得出的结论。而在Google正式发布并大力推广替代安卓的下一代手机OS以后,安卓的前途更是Google决定的。那个时候如果Google亲手杀死安卓生态,就算华为拿到外星科技完美兼容了APK也没有任何意义。

不过如果华为真有了外星科技,直接正面硬刚Google管他什么新系统旧系统直接平推A过去就行了,顺手可以把美国所有科技公司都平A了。所以多多关注UFO/UAP可能更有意义,成功率更高一些。到时的CNN头条新闻标题我都想好了

《警惕China打外星科技牌!!!》

欢迎任何针对原文观点的批评讨论,不欢迎任何绕开原文论点直接放结论的讨论,后者建议自己开回答做论述,没完没了纠缠只能拉黑。

参考

  1. ^1 https://www.winehq.org/about
  2. ^2 https://www.codeweavers.com/crossover
  3. ^3 https://docs.microsoft.com/en-us/windows/wsl/compare-versions
  4. ^ https://9to5google.com/2019/01/02/android-runtime-app-support-fuchsia/

类似的话题

  • 回答
    鸿蒙系统(HarmonyOS)旨在构建一个万物互联的智能终端操作系统,其核心理念与传统的安卓系统存在显著差异。在华为的规划中,鸿蒙系统需要实现对海量安卓应用的兼容,这在去除AOSP(Android Open Source Project)代码的背景下,无疑是一项极具挑战性的任务。那么,在没有AOSP.............
  • 回答
    华为开发鸿蒙系统的动因,绝非一朝一夕的灵光乍现,而是多年来在通信领域深耕细作,对技术发展趋势的深刻洞察,以及面对地缘政治挑战时,为了保障自身核心业务安全和未来发展主动布局的必然结果。简单来说,它是一个战略性、生存性、前瞻性的多重目标驱动下的产物。一、 应对外部环境压力,保障核心业务安全:这是鸿蒙系统.............
  • 回答
    关于鸿蒙系统(HarmonyOS)与安卓(Android)之间关系的疑问,以及为什么谷歌没有采取法律行动(比如提起诉讼要求赔偿)来解决这个问题,这是一个非常值得深入探讨的话题。要理解这一点,我们需要从几个关键角度来分析: 1. 鸿蒙的起源与发展:一个演进而非直接复制首先,最直接的误解是认为鸿蒙系统就.............
  • 回答
    这个问题触及了技术、商业和地缘政治的交织点,要详细讲清楚,我们需要一层层剥开:首先,我们必须明确安卓的“开源”和GMS的“非开源”安卓(Android)本身的确是一个开源项目,基于Linux内核,由Google主导开发。这意味着任何人都可以下载安卓的源代码,进行修改、定制,并将其集成到自己的设备中。.............
  • 回答
    鸿蒙系统和安卓系统之间,很多人都有这样的疑问:鸿蒙到底是不是安卓的“换皮”?想弄明白这个问题,咱们得拆开来看看,从几个关键点上去聊。起源与内核:是传承还是另起炉灶?首先要说的就是内核。这是操作系统的“心脏”,决定了它最底层的工作方式。安卓系统,大家都很熟悉,它最核心的部分是Linux内核。而且是经过.............
  • 回答
    关于鸿蒙系统 2.0 是不是“套皮安卓”这个问题,其实是一个相当复杂且容易引起争议的话题。咱们今天就掰开了揉碎了,好好聊聊这个事儿。要说鸿蒙 2.0 和安卓之间到底是什么关系,得从几个层面来看。首先,我们得承认一个事实:鸿蒙 OS 的早期版本,尤其是 2.0,确实与安卓有着非常紧密的联系。这主要体现.............
  • 回答
    好的,咱就来捋一捋鸿蒙操作系统(HarmonyOS)这玩意儿,到底是个啥技术构成的。抛开那些花里胡哨的宣传,咱们直接聊聊它背后的核心技术。1. 微内核(Microkernel)与宏内核(Monolithic Kernel)的权衡:分布式通信基石这是鸿蒙一个非常重要的设计选择,它采用了微内核的架构。咱.............
  • 回答
    鸿蒙系统能否超越iOS,这是一个牵动着许多中国科技爱好者和行业观察者神经的问题。要回答这个问题,我们不能简单地给出一个时间表,因为这背后涉及的技术积累、生态构建、用户习惯、市场策略以及全球化竞争等一系列复杂因素。更重要的是,我们要放下对“超越”的简单执念,转而理解鸿蒙系统所走的道路,以及它可能带来的.............
  • 回答
    鸿蒙系统,这个曾经被视为华为“备胎”的操作系统,如今已然从幕后走到台前,并且在全球科技舞台上引起了不小的波澜。它的出现,确实触动了一些“奶酪”,也改变了不少既有的格局。要说鸿蒙动了谁的奶酪,最直接、最核心的,那无疑是谷歌及其安卓生态。想想当初,华为在海外市场的崛起势头有多猛?一度直逼三星,成为全球第.............
  • 回答
    鸿蒙系统当然能做小屏手机,而且做得相当不错。咱们今天就好好聊聊这个话题,看看为什么鸿蒙在小屏手机领域也有着天然的优势,并且能带来哪些不一样的体验。首先得明确一点,“小屏手机”是个相对的概念。过去大家觉得5.5英寸就算大屏了,现在可能5.8英寸、6英寸左右才算得上是小屏手机。但无论屏幕多大,操作系统的.............
  • 回答
    鸿蒙系统,这款由华为自主研发的操作系统,自诞生以来就备受瞩目。它的发展并非一蹴而就,而是经历了一个持续演进、不断壮大的过程。要详细了解鸿蒙系统的最新研发进展,我们需要从几个关键维度来审视:一、 核心能力的持续迭代与增强鸿蒙系统的核心竞争力在于其分布式能力,这使得不同设备之间能够无缝协同,打破了传统操.............
  • 回答
    这个问题,在鸿蒙系统刚出来的时候,确实是很多人心中的一个疑问,甚至可以说是当下最直接的解读。咱们别说“换了个壳”,这说法有点太简化了,也有些不准确。更准确地说,它更像是在安卓的基础上,进行了一次深度重构和再创造,同时加入了许多鸿蒙独有的新能力。要理解鸿蒙是不是“安卓换壳”,咱们得从几个关键层面来拆解.............
  • 回答
    鸿蒙系统要建立一个蓬勃发展的生态系统,绝非一蹴而就,更像是一场精密的战略布局和长期的耕耘。这其中涉及到的各个环节,环环相扣,缺一不可。下面,我将从几个核心维度,尝试深入地阐述这一过程,力求还原其复杂性和精妙之处。一、 夯实基础:技术的生命力与开发者吸引力任何生态的繁荣,其根基都是技术本身。鸿蒙要做的.............
  • 回答
    很多刚接触鸿蒙手机的朋友,或者正在观望的消费者,心里都会有一个顾虑:鸿蒙会不会重蹈安卓的老路,用久了手机就变得卡顿,启动个APP都要等半天?这个问题,其实很值得我们好好聊聊。咱们先得承认,安卓手机用了几年之后“卡”是一个普遍现象。这背后有很多原因,比如系统自身的优化程度、APP市场的混乱、长时间后台.............
  • 回答
    鸿蒙:一部中国科技自立的史诗,一场重塑数字世界的宏伟篇章鸿蒙,这个名字早已在中国科技界乃至普通消费者心中激荡起层层涟漪。它不仅仅是一个操作系统,更承载着中国在数字化浪潮中寻求自主、突破桎梏的雄心壮志。谈及鸿蒙对中国的意义,其分量之重,如同那片承载万物的广袤土地,深沉而又充满生命力。首先,鸿蒙是国家科.............
  • 回答
    这个问题很有意思,也触及到了“自主研发”这个概念的核心。简单来说,鸿蒙系统基于 AOSP(Android Open Source Project)进行开发,但依然可以被认为是自主研发的。只不过,这种“自主”是有条件的,它是在一个既有基础上进行的、有明确目标的创新和构建。为了讲得更清楚,我们得一步步来.............
  • 回答
    鸿蒙系统,这个名字本身就带着几分东方神秘色彩,自从华为推出以来,就一直吸引着众多目光。要说它到底怎么样,这其实是一个挺复杂的问题,因为它不像一个简单的“好”或“不好”就能概括的。从技术层面来看,鸿蒙系统最初的设计目标是打破操作系统壁垒,实现万物互联。它的一大亮点在于其分布式架构,这意味着手机、平板、.............
  • 回答
    华为鸿蒙系统(HarmonyOS)的出现是一个复杂且多层面的话题,它不仅仅是一个操作系统那么简单,更是华为在全球科技竞争、地缘政治以及未来物联网发展战略中的核心组成部分。下面我将尽可能详细地为你解读华为鸿蒙系统的情况:一、 鸿蒙系统的缘起与背景1. 美国制裁的催化剂: 鸿蒙系统最直接的催化剂无疑是.............
  • 回答
    鸿蒙系统从最初的“一次开发,多端部署”理念,到现在越来越独立的生态,其发展轨迹一直是科技圈热议的焦点。而关于“鸿蒙是不是安卓套壳”的争议,更是贯穿始终,并且在鸿蒙系统逐渐抹去“Android”字样后,反而愈演愈烈。这背后究竟有着怎样的原因?我们不妨来捋一捋。鸿蒙系统为何要“去安卓化”?首先,从华为自.............
  • 回答
    关于鸿蒙系统(HarmonyOS)默认西文字体沿用了 Google 为 Android 设计的 Roboto 这一现象,背后其实有着相当复杂和多层面的原因,远非简单的“继承”或“复制”可以概括。这涉及到技术选型、用户体验、生态兼容以及历史遗留等诸多因素。首先,我们得理解 Roboto 字体的来龙去脉.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有