Android 15 上的原生 linux 开发环境
Android 15 QPR2 上的 Linux 开发环境为开发人员和高级用户提供了一个宝贵的工具。它为在 Android 设备上访问 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 环境,敬请关注,拍手叫好!
你也许感兴趣的:
共有 2 条讨论