是否可以在(正常)Linux上运行Android应用程序?


17

由于Android是一个分叉的Linux内核以及软件堆栈,我想知道是否有任何有关创建可添加到Linux系统以允许Linux系统运行Android应用程序(例如x86的Android版本)的项目或想法。 )。

这样的事情是否存在或有可能吗?

(我并不是说SDK随附的仿真器。)


2
BlackBerry Playbook的Android Player已经关闭,尽管它当然可以在QNX而非Linux上运行。
马修(Matthew)

Answers:


2

自发布以来的几年中,情况发生了一些变化。

现在有几种(尽管没有一种是完美的)在没有模拟器或VM的情况下在Linux上运行Android应用的方法。

  1. Shashlik与您的GNU桌面环境具有很好的集成。不过缺少Google Play服务。
  2. ARChon利用Google Chrome浏览器,可以像安装Chrome应用程序一样安装Android应用程序。这很整洁,尽管在这里兼容性也不是很完美
  3. 最后,Google 正式带来了将Play商店安装到Chrome操作系统。由于这是Google开发的官方项目,因此我认为它应该具有最好的兼容性。Chrome操作系统是基于Gentoo的Linux发行版。它的大部分源代码可通过Chromium OS项目获得。此源代码可用,将这种兼容性移植到流行的GNU / Linux发行版应该不难。Google对开源相对友好(至少与Apple / Microsoft相比),而且我认为他们不会为这种移植带来任何障碍。如果有的话,他们似乎热衷于在Play商店中投放尽可能多的设备。他们甚至可以将此功能内置到Linux的将来版本的Google Chrome浏览器中,或发布单独的软件包。他们发布了Android和Chrome操作系统的大多数源代码,

顺便说一句,无需为x86单独编译APK。您编写的应用程序被编译为Dalvik可执行(DEX)代码,内核最终将其转换为汇编代码(根据所需的体系结构),以发送给处理器。(最后一部分摘自此答案。


12

由于应用程序不是在操作系统中本机运行的,而是使用Dalvik虚拟机(Wikipedia),因此尚无类似的东西。从某种意义上说,它在某种程度上类似于Java,它使用字节码并为每个应用程序创建一个单独的环境。因此,除非将Dalvik环境移植到其他平台上,否则它们将无法在普通硬件上运行。

Myriad有一个名为Alien Dalvik的项目,该项目尝试在不同的环境中运行Android应用程序,但是没有太多信息。无数外星人达尔维克


1

自Revetahw发布以来,情况再次发生了变化。

Shashlik似乎不是一个活跃的项目,但是Anbox似乎正在逐渐普及。Anbox的优点是它不会模拟Android内核,而是使用Linux内核功能在Linux系统和Android系统之间共享内核。

此外,Chrome操作系统现在在多种设备上都具有稳定的Android应用程序支持,但不幸的是,该集成是开源的,没有宣布开源的计划。


0

我不知道是否有这种项目。最接近的可能是android-x86项目,它是台式机工作站上android环境的端口:http : //www.android-x86.org/


1
这不会在台式机工作站上模拟Android环境,而是将Android移植到普通PC上。
Andrew J. Brehm

当然,我的配方不太适合。修复了,谢谢。
朱里(Juri)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.