Android 15 上的原生 linux 开发环境
简介
想象一下,在你的 Android 设备上,你的口袋里就有一个 Linux 终端。有了隐藏在 Android 15(BP1A.250305.019 版本)“开发者选项 ”中的 “Linux 开发环境 ”功能,这一切都将成为现实。
该功能为开发人员和高级用户开辟了新的可能性,允许直接在智能手机或平板电脑上编写脚本、编码和运行熟悉的 Linux 工具。
什么是 Linux 开发环境?
该功能创建了一个容器化的 Linux 环境。它与 Android 操作系统同时运行。它不是桌面体验,而是黑客风格的命令行界面。该环境由 Debian Linux 发行版提供支持。
由 AVF 支持的容器化
想象一下,在你的 Android 手机里有一个超级安全的小房间!这就是安卓虚拟化框架(AVF)的基本功能。它使用称为 pKVM(基于内核的受保护虚拟机)的巧妙技术创建安全、隔离的虚拟机。这有助于保护您的私人数据和重要应用程序。开发人员可以使用 AVF 构建更加安全和私密的应用程序。终端应用程序利用 AVF 运行,可防止攻击者从 Debian 环境访问操作系统。
开发人员和 DevOps 的乐园
这项功能是开发人员的福音。你可以编写脚本,通过 ssh 连接到远程服务器,编写、执行和测试 Bash、C、C++、Python 甚至 Kotlin 和 PHP 等代码。
普通 Linux 操作系统上的所有开发工具都可以在你的手掌中找到。
你可以设置自己的开发人员配置,使用 Zsh 和其他所有工具。用 vim 或 emacs 编辑文件。选择你的团队
最后,还有一个端口转发选项,可以让你运行网络服务器。
如何启用 Linux 开发环境?
首先,你需要解锁开发者选项。进入 “设置”> “关于手机”,反复点击 ‘版本号’,直到看到一条确认已启用 “开发者选项 ”的信息。
然后,导航至 “设置”>‘系统’>“开发人员选项”。向下滚动,直到找到 “Linux 开发环境 ”并将其打开。系统可能会提示你下载一些初始文件。启用后,你将需要一个终端应用程序来与 Linux 环境交互。
让我们走一圈
打开终端应用程序。你将看到一个黑白分明的 Linux 命令提示符。
首先,你可以使用必须的 uname -a
、ls
和 cd
命令来探索文件系统。
使用 free -hand df-h
查看系统健康状况
然后获取最新更新 apt update && apt upgrade
.

注意:Linux 环境中的文件系统结构与 Android 文件系统不同,你将找不到 Android 应用程序或文档。
让我们创建一个简单的网络服务器
我想演示一下终端应用程序在网络开发方面的能力。让我们创建一个简单的网络服务器,并通过 Android 系统访问它。
首先,用 iptables 打开 8080 端口:
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
运行您的 python 微型服务器:python3 -m http.server 8080

然后打开 Android 上的 Chrome 浏览器,连接到 localhost:8080,就可以了!

需要注意的一些限制
终端是一个非常强大的工具,但它仍然是基于文本的体验(是吗?请读到最后;) )。
性能直接取决于设备的硬件规格。


Linux 环境使用的存储空间与 Android 系统共享,因此你需要相应地管理空间。你可能还会注意到电池使用量会略有增加,尤其是在执行资源密集型任务时。
为了安全起见,Linux 环境是沙箱式的,这意味着它与 Android 系统的其他部分隔离开来,从而限制了对某些 Android 功能的直接访问。
顾名思义,该功能主要用于开发和实验,并不一定适合运行高性能应用程序。
这台机器运行在不同的网络上,你可以用手机访问它,但我无法用同一无线网络上的另一台电脑访问它。
安卓设备:192.168.20.12 / 192.168.0.1
Linux Box: 192.168.0.2
注意 Linux 盒子的 IP 不在同一个子网中(0 与 20)。因此,我们无法从同一网络上的计算机访问 Linux 盒子。
我还尝试访问 192.168.20.12:8080,但端口没有开放。所以端口转发似乎只能在安卓设备内起作用。
您可以考虑使用反向代理从外部访问 Debian 操作系统,但一定要小心。
纵向、横向和外接键盘
使用终端需要大量打字。使用虚拟键盘会很快让人感到疲劳。终端应用程序支持外接键盘,你可以横向使用手机,体验会更舒适一些。安卓系统有许多蓝牙键盘,你也可以将 USB-C 键盘插入充电端口。
安全
尽管 Linux 在沙盒中运行,但不良分子仍会通过消耗大量资源(如 CPU(加密挖矿……)或网络(DDoS 机器人))将你的手机变成垃圾。
此外,终端会挂载共享存储和内部存储。
共享存储是你的 “下载 ”文件夹。
我可以从共享存储中创建和删除文件。
这对于在手机和 Debian 盒子之间传输数据非常有用。这也意味着,在最坏的情况下,您可能会丢失所有下载的文件。
内部存储包含与 Debian 相关的文件。它只能以 root 身份访问。

我的建议是,只安装来自可信来源,即 Debian 软件源的软件。在运行未知来源的脚本或应用程序时要谨慎。
几个使用案例
SSH-ing to your servers
我认为终端应用是通过 SSH 访问服务器的好方法,你可以保存访问密钥,并将终端应用放在 Android 15 提供的私人空间中,以提高安全性。
脚本/简易编程
只要你喜欢使用 vim 和 emacs 等纯文本编辑器,就可以用多种语言编写脚本和程序。端口转发功能可让你为网络进行开发。
运行纯 Linux 程序
运行一些轻量级的纯 Linux 程序,如 nmap、ssh 或 curl。
还有一件事:源代码
你可以在 AOSP 代码库中找到终端应用程序的源代码,这也是了解 AVF 如何工作以及即将推出的功能的好方法。
结论
Android 15 QPR2 上的 Linux 开发环境为开发人员和高级用户提供了一个宝贵的工具。它为在 Android 设备上访问 Linux 终端和运行熟悉的工具提供了一种便捷的方式。这是移动设备世界中独一无二的功能。除非你有外接键盘和/或大屏幕(平板电脑、可折叠设备、外接显示器),否则在终端上花费很长时间可能是个挑战。
感谢您阅读到这里!希望你有所收获,并对这项新功能感到兴奋!
在下一篇文章中,我将介绍如何在 Android 设备上获得 GUI Linux 环境,敬请关注,拍手叫好!
共有 1 条讨论