在(普通)Linux上运行Android应用是否可能?

60次阅读
没有评论

问题描述

想知道是否有可能在普通的Linux系统上运行Android应用程序,而不是使用SDK自带的模拟器。由于Android是一个分叉的Linux内核加上软件堆栈,用户想知道是否有任何项目或想法可以创建一个可以添加到Linux系统中的Android版本,以允许Linux系统运行Android应用程序(编译为x86等)。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

目前尚未存在这样的解决方案,因为Android应用程序并不是在操作系统中以原生方式运行,而是使用Dalvik虚拟机(参见维基百科)。Dalvik虚拟机类似于Java,它使用字节码并为每个应用程序创建一个独立的环境。因此,除非Dalvik环境被移植到其他平台,否则无法在普通硬件上运行Android应用程序。

尽管存在一个名为Myriad Alien Dalvik的项目试图在不同环境中运行Android应用程序,但关于它的信息并不太多。

方案2

在过去的几年里,情况有所改变。现在有几种方法可以在Linux上运行Android应用程序,而不需要模拟器或虚拟机。以下是一些方法:

  1. Shashlik: Shashlik在GNU桌面环境中具有良好的集成性。但缺少Google Play服务。
  2. ARChon: ARChon利用Google Chrome,允许您安装Android应用程序,就像它们是Chrome应用程序一样。然而,兼容性并不完美。
  3. Google Play Store for Chrome OS: Google正在将Play商店带到Chrome OS。由于这是Google官方开发的项目,我相信它的兼容性应该是最好的。Chrome OS是一个基于Gentoo的Linux发行版。它的大部分源代码通过Chromium OS项目公开。因此,将此兼容性移植到流行的GNU/Linux发行版应该不难。Google对开源相对友好,我认为他们不会对这样的移植设置任何障碍。他们似乎热衷于Play商店尽可能多地覆盖设备。他们甚至可能将这个功能集成到未来版本的Google Chrome for Linux中,或者发布一个单独的软件包。他们发布了Android和Chrome OS的大部分源代码,并且他们在内部使用Linux。

需要注意的是,无需为x86单独编译APK文件。您编写的应用程序会被编译为Dalvik可执行文件(DEX),最终由内核转换为汇编代码(根据所需的架构)发送到处理器。

方案3

最近的发展表明,Shashlik项目似乎处于停滞状态,但Anbox似乎正在蓬勃发展。Anbox的优势在于它不是模拟Android内核,而是使用Linux内核特性在Linux系统和Android系统之间共享内核。

此外,Chrome OS现在在几种设备上稳定支持Android应用程序,但不幸的是,这种集成是闭源的,没有宣布开源计划。

附注

android-x86项目可能是最接近此类目标的项目之一。它是将Android移植到普通PC上的项目。

“`

正文完