在 Android 16 的 Linux 终端中内存不足?试试这个解决方法

Android 15 第二季度更新中最令人兴奋的新功能之一就是 Linux 终端应用程序。该应用允许用户在 Android 系统上运行完整的 Linux 应用程序,它通过在虚拟机中启动 Debian 发行版实例来实现这一点。这个虚拟机会与宿主 Android 设备共享资源和硬件,例如处理能力和存储空间。默认情况下,Linux 终端应用的内存限制为 4GB,这对于某些要求较高的开发工作负载可能不够用。幸运的是,这一限制有一个简单的解决方法。

在 Android 16 的 Linux 终端中内存不足?试试这个解决方法

尽管 Linux 终端应用可以在所有搭载最新 Android 15 正式版或 Android 16 测试版的 Pixel 手机上运行,但它的内存分配是固定的,与设备的总内存无关——无论是 8GB、12GB 还是 16GB。相比之下,Chromebook 上的 Linux 虚拟机几乎可以使用所有可用内存,只保留 1GB 以确保 Chrome OS 的正常运行。因此,Chromebook 能够应对更高强度的内存密集型开发任务。

由于 Google 开发 Linux 终端应用的主要动机之一是将更多开发工具引入 Android,因此其 4GB 的内存上限令人失望。尽管终端应用支持“内存气球”功能,可动态调整 Linux 虚拟机的内存分配,但这一功能只能在虚拟机运行所需的最小内存和前述 4GB 限制之间浮动。幸运的是,虽然并非万无一失,但这个限制的解决方法相对简单,并且熟悉 Linux 的用户很可能对此并不陌生。

在 Android 16 的 Linux 终端中内存不足?试试这个解决方法

正如开发者李钊在他的博客中指出的那样,这个过程包括将 zram 的大小从默认的 1GB 增加到 8GB,在磁盘上创建一个 8GB 的交换文件(swap file),并将 swappiness 设置为一个合适的值(例如 100)。

要增加 zram 的大小,需要编辑 /etc/systemd 目录下的 zram-generator.conf 文件:

$ cat /etc/systemd/zram-generator.conf
[zram0]
zram-size = 8192
compression-algorithm = zstd

要更改 swappiness 的值,需要编辑 /etc 目录下的 sysctl.conf 文件:

$ cat /etc/sysctl.conf
....
vm.swappiness=100

要创建一个新的 8GB 交换文件,请运行以下命令:

$ sudo fallocate -l 8G /swap
$ sudo chmod 600 /swap
$ sudo mkswap /swap
$ sudo swapon /swap
$ sudo swapon -s #update /etc/fstab for defaults mount on boot
$ cat /etc/fstab
...
/swap swap swap defaults 0 0

对于不熟悉的用户来说,zram 允许你将一部分内存用作压缩的交换空间,从而有效增加可用内存。另一方面,swappiness 值决定了 Linux 内核在进行内存页面交换时的积极程度。虽然与磁盘存储相比,将页面交换到内存中速度更快,但这并不是一种能显著提升可用内存的万无一失的方法——毕竟压缩是有极限的。尽管如此,这个简单的解决方案在结合磁盘上的额外 8GB 交换空间后,应该能有效减少因内存不足导致的应用被终止或 Linux 终端崩溃的情况。

自最初发布以来,Google 已对 Linux 终端应用进行了多项改进,例如增加存储分配和引入标签页界面。希望未来公司还能进一步优化,加入如可调节内存分配、图形界面应用支持等功能。

你在 Pixel 手机上体验过新的 Linux 终端应用了吗?如果是,你目前都用它做了些什么?欢迎在下方评论区分享你的体验!

上一篇 2025年5月9日 15:33
下一篇 2025年5月9日 20:01

相关推荐

  • 如何禁用Windows 11快速启动

    快速启动是Windows 11这有助于你的计算机在关闭后更快地启动。这是一个有用的功能,在以前的Windows版本中已经存在了一段时间,但它确实有缺点。最值得注意的是,由于它会使计算机启动更快,它会使访问引导选项变得更困难,比如在双启动设置中使用辅助操作系统或者进入Bios . 什么是Windows 11快速启动? 快速启动在休眠和关闭之间达到完美的平衡,以…

    2024年8月20日
    423
  • 在Windows上安装和使用NVM的方法

    Node.js是一种非常流行的JavaScript运行时环境,用于许多Web应用。作为开发人员,你可能已经熟悉该工具,但有时不同的项目需要不同版本的Node.js。使用此工具的一个版本设计的项目在其他版本上可能无法正常工作,其实运行多个版本的Node.js很容易,使用Node版本管理器 (NVM) 可以更轻松地做到这一点。 官方称,NVM不适用于Window…

    2024年8月16日
    333
  • 如何在macOS上安装Android应用程序

    苹果最新的Mac电脑,包括MacBook Air (2024),是市场上最强大的消费电脑之一。最新的操作系统macOS Sonoma让用户能够利用一些有用的功能,例如更好的小部件、视频会议工具和游戏模式。然而,许多人不知道的是,Mac电脑上还可以运行Android应用程序。虽然默认情况下您无法在macOS上安装Android应用程序,但您可以按照一些步骤来解…

    2024年9月16日
    753
  • 如何在 Pixel 手机上启用 Android 16 的音频共享功能

    即将发布的 Android 16 更新虽然不会为 Pixel 设备带来重大界面变化,但终于会引入一个备受期待的新功能:Auracast 支持。Auracast 是“广播音频”的市场名称,它是 Bluetooth LE Audio 标准的一项功能,允许设备发起或接收附近的音频流。尽管谷歌已宣布 Android 16 将为其最新的 Pixel 设备带来 Aura…

    2025年5月9日
    12
  • 如何在Ubuntu中查看自己的IP地址

    IP地址就像你的实际邮寄地址,如果你将Linux发行版(如Ubuntu)连接到互联网或路由器,你的系统就会被分配两个IP地址。一个是私有IP地址,用于在内部网络上识别你的设备,另一个是公共IP地址,即你连接时网站看到的IP地址。 如果你遇到网络问题,或者你正在与IT管理员通话并且他们需要远程连接,那么了解Linux上的IP地址非常重要。Ubuntu也可以轻松…

    2024年8月23日
    453