【问题标题】:Android: How to create a homescreen shortcut to launch a shell script? [closed]Android:如何创建主屏幕快捷方式来启动 shell 脚本? [关闭]
【发布时间】:2013-02-07 14:40:35
【问题描述】:

是否有任何应用程序可以为 shell 脚本创建主屏幕快捷方式(所以我只需单击它即可运行脚本)?

如果应用程序是开源的,那就太好了,并且允许我将脚本保存到有根设备的内部存储中。

【问题讨论】:

标签: android shell user-interface scripting


【解决方案1】:

回答:您的问题的答案应该是 GScript(开源并在根设备上“保存在任何地方”),但是当脚本完成时,谁想盯着那个模态终端输出屏幕?详情如下。

  • SManager (free version) 可让您将自定义脚本存储在设备上的任何位置,如果您使用的是有根设备,甚至是您的内部存储。它可以让您设置不同的自动启动触发器:启动(当然)、网络启动/关闭等。可以触发通知以让您了解脚本的运行和/或退出状态等。但是,它不会让您创建一个将直接执行您的脚本的主屏幕快捷方式。它首先启动到自己的 UI,然后您可以从那里执行您的脚本。 SManager (no ads version) 确实可以让您从主屏幕快捷方式干净地在后台执行您的脚本,尽管对于某些脚本我构建了 GUI 弹出视图。我使用这个应用程序编写 shell 和 python(参见SL4A/android-scripting)。

  • GScript Lite(也称为Gscript (donate version))是一个开源解决方案。您可能希望与源代码库同步并重新编码/改进它以更好地满足您的需求。就像现在(v1.1.2)一样,它需要对 ICS+ 进行一些改进,因为它的 UI 退出时会出现一个无害的错误(一个限制其有用性的弹出窗口)。此解决方案将允许您通过主屏幕快捷方式(两个版本)直接启动脚本,但您必须在之后盯着一个免费的终端输出屏幕 20 整秒或直到您手动关闭/关闭它。

  • SL4A/android-scripting 在另一个答案中被提及。为您的脚本创建主屏幕快捷方式很容易。这是一个开源解决方案,但它不允许您将脚本保存到设备的内部存储中。该解决方案使用模块化 apk 插件支持 Lua、BeanShell(Java)、Bash shell、Python、Perl、JRuby、Tcl 和 JavaScript。

  • SL4A Script Launcher 是 TaskBomb 自动化/调度实用程序的附加组件。 TaskBomb 提供的脚本执行触发器基本上涵盖了 Android API 公开的每个 Content Provider,而且数量很多。完整的 SL4A 语言支持适用于此应用程序。如果您只需要简单的 shell 脚本,您可能会发现它有点臃肿。您的脚本可以通过主屏幕快捷方式启动,但这不是开源解决方案。

【讨论】:

  • 感谢您的完整回答!我的选择是使用修补 (code.google.com/p/gscript-android/issues/detail?id=4) 版本的 GScript。
  • @Equidamoid:谢谢你的补丁。你能分享一个二进制blob吗?如果不是,我该如何自己编译?如果有解决方案,我会更高兴!?
  • @Phpdna 试试这个:bitbucket.org/Equidamoid/gscript/downloads 如果有任何问题,请随时在跟踪器中创建问题 =)(PS:抱歉延迟)
  • @Equidamoid:谢谢,太棒了。但是我需要用 Gscript 运行脚本,对吗?我不能告诉 Gscript 启动特定的脚本?
  • @Phpdna Gscript 提供了一个主屏幕小部件来启动某些脚本(因此您无需启动应用程序然后选择脚本,只需单击小部件即可启动脚本)。添加小部件时,系统会要求您选择脚本。
【解决方案2】:

所以我发现最好的选择是 GScript。

G.Play 上的 GScript 版本已损坏,我已向 bugtracker 发送了一个补丁,但我没有看到任何活动。 这个项目似乎被放弃了,所以我在这里做了一个分叉:https://bitbucket.org/Equidamoid/gscript。该 apk 位于“下载”部分。

【讨论】:

  • 我和我的朋友们使用已安装好的 Kindle Fire HD 很高兴使用您修补的 GScript 从启动器快捷方式阻止、取消阻止和启动系统应用程序。太棒了!
  • GScript 在 Android 4.4.2 下对我不起作用。它显示了标题行,但仅在标题下方显示黑屏。
【解决方案3】:

也许有人会像我这样觉得有用:我使用 ConnectBot(可在 Play Store 上找到,开源 https://code.google.com/p/connectbot/)。它是一个允许连接到手机本身的 SSH 客户端。您可以为此创建本地脚本的快捷方式:

  • 创建一个新的“本地”连接。您只需要引入一个别名(例如您的脚本名称)
  • 然后,编辑连接,出现“自动化后开始会话”之类的选项(我不知道确切的英文单词,因为我看到的是西班牙语语言环境)
  • 如果您的脚本足够简单,您只需在输入框中发出命令(多行):如果没有,请将实际文件脚本的路径/名称放在手机上(不要忘记“换行符”! )
  • 现在,您可以在您的主屏幕上添加该连接的快捷方式(我在 Nova Launcher 上有一个选项:长按主屏幕,“添加快捷方式”,选择 Connect Bot,您将在应用程序。不同的启动器可能会有所不同。

【讨论】:

  • 谢谢,在搞砸了 Busybox SSH 之后,我一直在用 connectbot 却不知道这个功能!
【解决方案4】:

我发现了允许创建快捷方式的 SL4A 项目。不幸的是,所有脚本都必须放在 sdcard 上。

【讨论】:

    【解决方案5】:

    终端模拟器应用程序本身(与 cyanogenmod 等捆绑在一起)允许您创建一个快捷方式(通过小部件窗口),该快捷方式打开终端窗口运行给定命令(在创建快捷方式时输入)。

    使用此工具执行脚本非常容易(使用别名;使用 && 链接命令;实际创建和执行脚本)。

    这可以被认为是内置选项。

    【讨论】:

      猜你喜欢
      • 2020-04-01
      • 2011-09-14
      • 1970-01-01
      • 2012-09-25
      • 2012-03-22
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      相关资源
      最近更新 更多