Android 15 上的原生 linux 开发环境

Android 15 QPR2 上的 Linux 开发环境为开发人员和高级用户提供了一个宝贵的工具。它为在 Android 设备上访问 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 和其他所有工具。用 vimemacs 编辑文件。选择你的团队

最后,还有一个端口转发选项,可以让你运行网络服务器。

如何启用 Linux 开发环境?

首先,你需要解锁开发者选项。进入 “设置”> “关于手机”,反复点击 ‘版本号’,直到看到一条确认已启用 “开发者选项 ”的信息。

然后,导航至 “设置”>‘系统’>“开发人员选项”。向下滚动,直到找到 “Linux 开发环境 ”并将其打开。系统可能会提示你下载一些初始文件。启用后,你将需要一个终端应用程序来与 Linux 环境交互。

让我们走一圈

打开终端应用程序。你将看到一个黑白分明的 Linux 命令提示符。

首先,你可以使用必须的 uname -alscd 命令来探索文件系统。

使用 free -hand df-h 查看系统健康状况

然后获取最新更新 apt update && apt upgrade .

free 和 df 命令显示内存和存储空间–一小部分内存分配给了 Linux 盒子(只有 4G/12G 可用)

注意:Linux 环境中的文件系统结构与 Android 文件系统不同,你将找不到 Android 应用程序或文档。

让我们创建一个简单的网络服务器

我想演示一下终端应用程序在网络开发方面的能力。让我们创建一个简单的网络服务器,并通过 Android 系统访问它。

首先,用 iptables 打开 8080 端口:

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

运行您的 python 微型服务器:python3 -m http.server 8080

微型 python 服务器和显示访问日志

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

从 Android(Chrome 浏览器)访问 python 服务器

需要注意的一些限制

终端是一个非常强大的工具,但它仍然是基于文本的体验(是吗?请读到最后;) )。

性能直接取决于设备的硬件规格。

lscpu 命令显示我们可以访问硬件。
3.8G 可用,而该设备安装了 12G

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 身份访问。

显示 /mnt/internal

我的建议是,只安装来自可信来源,即 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 条讨论

  1. 执迷观测 对这篇文章的反应是俺的神呀
  2. 匿名用户 对这篇文章的反应是俺的神呀

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注