Android的GUI编程,就好像它是一个普通的Linux系统

时间:2012-06-16 08:32:03

标签: android android-activity scripting command-line-interface

我需要在手机上做一些琐碎的批处理任务,而且我不想跳过使用GUI制作“应用程序”的所有操作,而只是为了完成这些任务(任务属于类型)你在一个理智的系统上用五分钟的时间在BASH中一起攻击。我似乎无法在网上找到任何地方解释如何简单地制作一个普通的程序(用任何语言,但如果能够简化与Android的交互,那么Java就可以了)可以访问Android API 这可以简单地通过SSH连接到手机并作为正常过程运行。不需要APK包,不需要GUI,也不需要任何东西。这应该是世界上最简单的事情,但每个例子似乎都首先关注的是制作GUI并使用Eclipse和SDK,而不是先做基础知识。

任何提示?

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

5 个答案:

答案 0 :(得分:3)

  

我似乎无法在网上找到任何解释如何简单地制作普通程序(使用任何语言,但如果可以简化与Android的交互,则可以通过Android进行交互)以及访问Android API的任何地方通过SSH连接到手机并以正常流程运行它。

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

  

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

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

欢迎您试用the dalvikvm command,虽然我不知道它是否在生产设备上可用,我不知道它是否可以“简单地通过SSH运行进入手机“。并且,请记住,使用它完全不受支持。

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

  

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

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

“每个Android开发介绍的第一页”应该集中在更接近100%用户群的重要事项上。当然,欢迎您建立自己专注于此类事物的网站,以满足那些有兴趣创建这类程序的用户。

答案 1 :(得分:2)

答案 2 :(得分:2)

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

  

虽然我已经有Android“hello world”可执行文件可供尝试,但我有   尚未能够运行它们。似乎无法找到我可以的目录   写在Asus Transformer上,文件系统支持   + x位。你真的必须根Android才能运行简单的二进制文件吗?我在里面哭。

     

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

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

  

有关其中的信息,请参阅http://kevinboone.net/android_nonroot.html   你写的android文件系统,exec能力。

     

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

     

...

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

  

感谢hhm,我指的是KBOX,我已经证实我可以   构建适用于Android的haskell程序。

http://kevinboone.net/kbox.html

  

KBOX [...]为您提供终端模拟器,a   体面的Linux实用程序(由busybox提供),ssh和rsync   客户端和服务器,以及其他一些东西。另外,有一个   扩展功能的附加软件包数量。

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

答案 3 :(得分:1)

  

我似乎无法在网上找到任何解释如何简单地创建一个能够访问Android API的普通程序的地方,只需通过SSH连接到手机并运行它即可运行作为一个正常的过程。

答案,翻译自a note by vitus-wagner

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

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

还有更多插件 - 请参阅wiki

(旁注。如果不是来自MSYS,可以预期来自GnuWin32的集成,但是在Windows下没有任何与Windows一致的集成程度。

然而,由于一些奇怪的原因,人们要求更多关于如何使它更像"类似Linux的"在论坛上,而不是如何有效地使用它来解决智能手机特定的任务......)

A toolkit for cross-compilation可用,因此可以尝试打包他最喜欢的软件。

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

有些事要知道:

  1. 需要Hacker's keyboard或类似的东西。没有Esc,Tab,Control就无法居住在这里。或者可以尝试学习Touch Keyboard

  2. vim使用与utf-8不同的编码运行,并且俄语字母显示不正确。因此,set encoding=utf-8必须写在.vimrc

  3. ssh到家里的另一台电脑无法登录。原因很简单:它使用了用户名u0_a95而不是通常的用户名。 (可以在User your_username中写.ssh/config以永久地"修复"它。)

答案 4 :(得分:0)

我建议您对XDA-Developers board

进行研究