3

我需要在我的手机上做一些琐碎的批处理任务,我不想跳过使用 GUI 制作“应用程序”的所有环节,而所有这些只是为了完成它们(任务属于你想要的类型在一个健全的系统上在五分钟内一起在 BASH 中破解)。我似乎在网上找不到任何地方解释如何简单地制作一个普通程序(使用任何语言,但如果这可以简化与 Android 的交互,Java 就可以了)并可以访问可以通过 SSH 运行的 Android API进入手机并将其作为正常进程运行。不需要 APK 包,不需要 GUI,什么都不需要。这应该是世界上最简单的事情,但是那里的每个示例似乎首先关注的是制作 GUI 和使用 Eclipse 和 SDK,而不是先做基础。

有小费吗?

(我知道这可能是边缘超级用户,但话又说回来,底部有一个编程问题:你如何制作一个可以从 Android 手机上的终端运行并仍然使用 API 的普通(Java)程序?)

4

5 回答 5

2

我似乎在网上找不到任何地方解释如何简单地制作一个普通程序(使用任何语言,但如果这可以简化与 Android 的交互,Java 就可以了)并可以访问可以通过 SSH 运行的 Android API进入手机并将其作为正常进程运行。

那是因为它对大多数 Android 用户或开发人员来说并不是特别重要。

你如何制作一个普通的(Java)程序,可以在 Android 手机的终端上运行并且仍然使用 API?

欢迎您使用Android 脚本层编写一些脚本,但您对 Android SDK 的访问权限有限,它们不能“简单地通过 SSH 进入手机运行”。这得到了 SL4A 团队的支持。

欢迎您试用dalvikvm命令,尽管我不记得它是否在生产设备上可用,并且我不知道它是否可以“只需通过 SSH 连接到手机即可运行”。而且,请记住,完全不支持使用它。

欢迎您为 ARM(或您的设备运行的任何 CPU 架构)编写自己的 C/C++ 代码。这“只需通过 SSH 进入手机即可运行”,但无法访问 Android SDK。

我仍然无法相信那种东西不在每个 Android 开发介绍的第一页上。

有超过 2 亿的 Android 设备用户。您认为这些用户中有多少百分比想要“制作一个普通的程序......访问可以通过 SSH 连接到手机并作为正常进程运行它简单地运行的 Android API”?0.01%?0.001%?我的钱是 0.0001%。

“每一个 Android 开发介绍的第一页”应该关注对接近 100% 的用户群很重要的东西。当然,欢迎您建立自己的专注于此类事物的网站,以满足那些对创建此类程序感兴趣的用户。

于 2012-06-16T15:39:39.703 回答
2

来自http://git-annex.branchable.com/design/assistant/blog/day_184__just_wanna_run_something/

虽然我已经尝试了 Android “hello world” 可执行文件,但我还不能运行它们。似乎找不到我可以在 Asus Transformer 上写入的目录,其文件系统支持 +x 位。你真的需要root安卓才能运行简单的二进制文件吗?我在里面哭。

似乎有福的 Android NDK 方式将涉及制作一个 Java 应用程序,该应用程序拉入一个包含本机代码的共享库。对于haskell,库需要包含一个C shim,它可能调用Haskell 运行时系统的入口点。一旦运行,它可能会使用 FFI 与 Java 端进行通信。好消息是,CJ van den Berg 曾经通过开发 ghc-android 拯救了我的培根,他告诉我他正在努力做这件事。

以及以下评论中的一些具体建议:

请参阅http://kevinboone.net/android_nonroot.html了解有关您在 android 文件系统中的哪个位置具有写入、执行能力的信息。

基本上,您在 adb shell 中的 /data/local (以及使用带有 adb shell 的 run-as 的可调试应用程序的文件夹中)和每个应用程序的 /data/data// 中具有这些功能(例如,使用终端仿真器时的数据目录)终端模拟器)。

...

http://git-annex.branchable.com/design/assistant/blog/day_185__android_liftoff/

感谢 hhm,他将我指向KBOX,我已经验证我可以构建在 Android 上运行的 haskell 程序。

http://kevinboone.net/kbox.html

KBOX [...] 为您提供终端仿真器、一套不错的 Linux 实用程序(由 bu​​sybox 提供)、ssh 和 rsync 客户端和服务器,以及其他一些东西。此外,还有许多用于扩展功能的附加包。

好吧,这只是关于在 Android 上运行一个可执行文件,而不是编写一个可以访问 Android API 的可执行文件......

于 2013-04-16T22:23:47.843 回答
2

我似乎在网上找不到任何地方解释如何简单地制作一个普通程序 [...] 访问 Android API 可以简单地通过 SSH 连接到手机并作为正常进程运行它来运行。

一个答案,翻译自vitus-wagner 的注释

Termux是一个高级终端仿真器,外加许多带有命令行界面的类 Unix 软件(在 APT 管理的包中)。实际上,不仅是 CLI(命令行),还有 GUI(虽然 GUI 软件还没有尝试过)。

与各种流行的“linux 部署”方式不同(它制作类似于容器的东西,至少是一个 chroot,根据传统的文件系统层次结构将东西安装到目录中),Termux 似乎旨在集成到主机系统中。为此,它有一个插件,Termux:api,它能够与系统进行大量交互:在原生 Android 应用程序中打开文件、发送短信、用相机拍照,甚至通过系统TTS引擎的手段。

还有更多插件 - 请参阅wiki

(附带说明。如果不是来自 MSYS 的话,来自 GnuWin32 的集成是可以预期的,但是在集成程度方面,在 Windows 下没有任何东西接近 Termux。

然而,出于某种奇怪的原因,人们在论坛上更多地询问如何使它更像“Linux”,而不是如何有效地使用它来解决智能手机特定的任务......)

提供了一个交叉编译工具包,这样人们就可以尝试打包他最喜欢的软件。

实际上,它可以在设备上进行本地编译,但似乎无法在本地打包。

一些事情要知道:

  1. 需要黑客的键盘或类似的东西。没有 Esc、Tab、Control 就无法生存。或者可以尝试学习触控键盘

  2. vim使用不同于 utf-8 的编码运行,并且俄罗斯字母显示不正确。所以,set encoding=utf-8必须写成.vimrc

  3. ssh 到家中的另一台计算机无法登录。原因很简单:它使用用户名u0_a95而不是常用用户名。User your_username(可以写入.ssh/config永久“修复”它。)

于 2018-05-23T11:26:47.950 回答
0

我建议对XDA-Developers 板进行研究

于 2012-06-16T08:36:24.857 回答