在 Linux 上模拟 Android 应用的 3 种方法

如果您是 Android 的铁杆粉丝,您可能知道您最喜欢的移动操作系统源自 Linux。 过去我们已经介绍过 Android 如何基于开源组件,而 Linux 内核就是其中之一。 如果他们是这样的话,这是有道理的 close,在 Linux 上运行 Android 应用程序应该相对容易。

事实证明,这是正确的。 通常在另一个操作系统上运行一个操作系统的应用程序是很棘手的。 但是有几种方法可供 Linux 用户运行 Android 应用程序,使事情变得相对容易。 让我们来看看。

其他操作系统上适用于 Android 的现有方法

过去我们已经介绍了几种在其他操作系统上运行 Android 或其应用程序的方法。 这些通常采用以下两种形式之一:

  1. 第一种是使用某种虚拟机 (VM),有时称为模拟器。 简而言之,它是模拟整个 Android 系统的软件。 一个 example 其中包括 Android Studio 中包含的模拟器,我们在创建简单的 Android 应用程序时广泛使用了该模拟器。 您还可以使用通用 VM 工具,例如 VirtualBox,并运行专为桌面使用而设计的 Android 风格之一。 最后,BlueStacks 是一个更优化的 example 此方法适用于 Windows。
  2. 第二种方法是使用兼容软件。 虽然它们的精确方法各不相同,但它们旨在将 Android 软件的输入和输出转换为主机可以理解的内容。 一种方法使用 Chrome 浏览器带有一个名为 ARChon 的插件来实现这个效果。

在下面的部分中,我们将探索以下 Linux 原生解决方案,它们在不同程度上使用了上述选项:

  • Anbox,它使用 Ubuntu 的 Snap 包格式。 它更像是一个兼容层,从某种“控制面板”启动应用程序。
  • Shashlik,它使用基于 QEMU 的优化 VM。 它会在您的常规系统启动器中为 Android 应用程序创建条目。
  • Genymotion,它使用基于 VirtualBox. 它运行一个完整的虚拟设备接口。

我们将在下面更详细地探讨这些选项中的每一个。

1. 盒子

盒子,顾名思义,自称是“盒子里的安卓”。 它是一个 Linux 应用程序,提供完整的 Android 软件堆栈 容器,类似于 Docker 的操作方式。 作为 Snap 包分发,您的分发版需要支持该格式——幸运的是,大多数主要版本都支持。

您可以在您的软件中心搜索它,或者在 Ubuntu 中使用如下提示命令:

sudo apt install snapd

现在 Snap 系统已经安装完毕,使用 Anbox 网站上的命令下载并安装它:

snap install --classic anbox-installer && anbox-installer

基于终端的安装程序脚本将为您获取所有内容。 它将首先执行一些 admin 添加新的软件存储库和安装先决条件等功能。 然后它将下载 Anbox Snap 包(如下图所示)并安装它。

安装后,您可以使用以下命令确认它正在运行:

安装 Anbox 后,您可以从主菜单启动它。 它出现在我的“失物招领”类别中,但它应该出现在文本搜索中。 片刻之后,屏幕上应该会弹出“Anbox 应用程序管理器”。

该项目的网站预先声明它仍在大力开发中。 当安装您的第一个应用程序时,您会感觉到这一点。 没有很好的图形化拖放方式来做到这一点——您需要使用 Android Debug Bridge (ADB)。 这个工具是 Android Studio 的一部分,所以如果它已经安装了,那么一切准备就绪。 如果没有,您可以安装 Android Studio(因为它提供了自己的模拟器,另一种选择),或者查看它们是否可以从您的包管理器中获得。

在 Ubuntu 上,以下内容将为您提供所需的内容:

sudo apt install android-tools-adb

现在,您可以安装一个您手头有 APK 文件的应用程序。 以下命令将安装 组织,记笔记和待办事项应用程序:

adb install com.orgzly_83.apk

最后,您会在 Anbox 窗口中看到该应用程序的图标弹出。 单击它会像您期望的那样打开应用程序(下图显示了我们在上面安装的 Orgzly 应用程序):

Esc键 键的作用类似于后退按钮,允许您 close 应用程序。

2. 沙什利克

沙什利克 是另一种选择,类似于 Anbox。 虽然后者使用了 Snap 包的容器技术,但 Shashlik 实际上包含了一个基于 QEMU 的轻量级虚拟机。

下载完庞大的 DEB 包后,您可以使用以下命令将其安装到 Ubuntu 系统中:

dpkg -i shashlik_0.9.3.deb

在 Shashlik 中安装应用程序也在进行中。 但是安装命令要简单一些:

/opt/shashlik/bin/shashlik-install name_of_app_file.apk

完成后,您会看到一个漂亮的小弹出窗口,说明它成功了。

您还将在启动器菜单中获得一个条目(在“Android 应用程序”类别下),当您单击它时,应用程序将启动。 Shashlik 的启动时间明显比 Anbox 长,因为它实际上是在启动一个适当的 VM:

最后,您的应用程序将在一个可能很小的窗口中打开。 有一些 QEMU 设置 */opt/shashlik/android/hardware-qemu.ini 您可以调整以获得更大的屏幕。

总体而言,安装 Shashlik 并设置一些应用程序的体验似乎更容易一些,如果您对较慢的启动没问题的话。

3. Genymotion

Genymotion 与上述两个选项略有不同。

首先,它是一种商业产品,所以如果你想长期使用它,你需要花一些钱。 这也意味着您需要一个 Genymotion 帐户才能下载试用版。 最后,它被定位为开发人员工具,这意味着它并不是真正意义上的启动应用程序的便捷方式,而是一个完整的测试系统。 如果这些事情都没有让你失望,你可以从 填写一个简单的表格并注册一个帐户

重新登录您的帐户后,单击页面右上角的“试用”按钮。 它将带您到一个下载页面,您可以在其中为您的系统选择一个 Genymotion 版本。 下载时,您还应该确保您有 VirtualBox 安装,因为 Genymotion 使用它。

完成后,确保您授予 BIN 文件可执行权限,然后以 root 身份运行它(如下图的命令所示)。

简单的设置将很快完成,通知您可用的“/opt/genymobile/genymotion/genymotion”命令。 运行它将启动应用程序:

试用版将出现要求身份验证或许可证。 选择 登入 并提供您的帐户凭据。 接受 EULA 后,系统会要求您创建一个虚拟设备:

该应用程序提供了一系列新旧设备。 选择一个并单击 下一个 两次将启动该过程,下载并设置新设备。

安装后,您只需从应用程序主窗口的列表中选择新设备,然后单击 开始 按钮:

运行后,您会在一个窗口中看到一个功能齐全的 Android 设备。

但起初它只包含一组最小的应用程序。 幸运的是,使用 Genymotion 能够 使用图形方法(拖放)安装新的。 将 APK 文件拖放到窗口上会自动将其传输到虚拟设备、安装并运行它。 在下图中,我们可以(再次)看到 Orgzly,这次分辨率更高:

那么哪一个是最好的?

答案很简单:运行您需要的应​​用程序的那个。 通常情况下,不要认为您只需要选择一个。 如果您有一个应用程序在 Anbox 中的作用就像一个魅力,另一个在 Shashlik 中嗡嗡作响,另一个需要 Genymotion 的全部马力,请全部使用它们! 随意将 Android Studio 模拟器也扔在那里,只是为了更好的措施!

您是否有任何必须在桌面上安装的 Android 应用程序? 您是否使用过上述任何解决方案? 它们与 BlueStacks 之类的产品相比如何? 在下面的评论中说出您的想法和提示!