2

Android终端模拟器Termux的强大功能:应用调用Termux执行命令

 1 week ago
source link: https://www.51cto.com/article/786150.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Android终端模拟器Termux的强大功能:应用调用Termux执行命令

作者:Reathin 2024-04-15 08:39:54
Termux为多种编程语言提供了支持,包括Python、Ruby、Node.js、PHP、Perl等,简单配置后可以在Android设备上编写和运行代码。还提供了丰富的命令行工具,如grep、awk、sed以及各种文本处理和网络诊断工具。

Termux介绍

Termux是一款开源的Android终端模拟器,使用apt和dpkg作为包管理工具,可以轻松安装、升级和管理各种软件包。

Termux为多种编程语言提供了支持,包括Python、Ruby、Node.js、PHP、Perl等,简单配置后可以在Android设备上编写和运行代码。还提供了丰富的命令行工具,如grep、awk、sed以及各种文本处理和网络诊断工具。

Termux允许用户访问和管理Android设备上的文件,包括内部存储和外部存储。同时包含SSH客户端和服务器,允许用户远程连接到其他计算机或者让其他计算机连接到Termux。此外还支持版本控制系统如Git和Subversion,用户可以在其设备上进行版本控制操作。

调用Termux执行命令

自Termux 0.95版起,第三方应用程序可以通过向RunCommandService发送intent或成为termux-tasker插件客户端的插件,在Termux应用程序上下文中运行命令。

  1. 配置Termux允许外部应用调用: 打开Termux,修改~/.termux/termux.properities文件,添加一行:
allow-external-apps = true

对于安卓版本>=10.0,需要给Termux启用关联应用权限,否则将不允许第三方应用直接后台启动Termux,而是当Termux在后台运行时才能调用。

启用「关联应用」权限:【应用信息】 -> 【应用】 -> 【Termux】 -> 【权限】 -> 【关联应用】。

  1. 应用配置: 在AndroidManifest.xml文件中请求com.termux.permission.RUN_COMMAND权限,在代码中给RunCommandService发送Intent。
<uses-permission android:name="com.termux.permission.RUN_COMMAND"/>

代码中Intent构建:

intent.setClassName("com.termux", "com.termux.app.RunCommandService");
intent.setAction("com.termux.RUN_COMMAND");
intent.putExtra("com.termux.RUN_COMMAND_PATH", "/data/data/com.termux/files/usr/bin/top");
intent.putExtra("com.termux.RUN_COMMAND_ARGUMENTS", new String[]{"-n", "5"});
intent.putExtra("com.termux.RUN_COMMAND_WORKDIR", "/data/data/com.termux/files/home");
intent.putExtra("com.termux.RUN_COMMAND_BACKGROUND", false);
intent.putExtra("com.termux.RUN_COMMAND_SESSION_ACTION", "0");
startService(intent);

相关参数说明:

  • com.termux.RUN_COMMAND_PATH:调用的ELF文件;
  • com.termux.RUN_COMMAND_ARGUMENTS:调用命令参数;
  • com.termux.RUN_COMMAND_WORKDIR:工作目录;
  • com.termux.RUN_COMAND_BACKGROUND:是否后台运行。如果为true则不会进入TermuxActivity;
  • com.termux.RUN_COMMAND_SESSION_ACTION:会话动作。

此处调用的是top命令:/data/data/com.termux/files/usr/bin/top

责任编辑:武晓燕 来源: 沐雨花飞蝶

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK