3

我有一个已成功为 Android 编译的 C 命令行可执行文件。我可以通过执行以下操作复制可执行文件并Android Terminal Emulator在我的 Android ICS 手机上启动它:

  1. 执行“导出 TERMINFO=/etc/terminfo”
  2. 执行“mount -o remount rw /sdcard”
  3. 从 sdcard 启动可执行文件

第一步是必要的,因为命令行应用程序使用 ncurses 库,如果我没有设置 TERMINFO,那么当我尝试启动应用程序时会出现错误。如果我离开第二步,那么当我尝试从 sdcard 启动命令行应用程序时,我会收到“拒绝访问”。因此,只要我手动执行这些步骤,我就可以启动命令行可执行文件。

现在我想做的是将此命令行可执行文件包装在标准的 Android 应用程序中。的源代码Android Terminal Emulator是开源的,因此我可以使用它来打开EmulatorView我的 Android 应用程序内部。不过,我的问题是如何将本机可执行文件包含apkEmulatorView. 我有点担心我是否能够克服版权问题,以便可以启动本机命令行可执行文件。

我确实知道 Android NDK,但希望重新编写一个工作命令行应用程序,以便它可以作为一个库包含在内。我特别关注将 C 可执行源保持原样并从包装应用程序执行它。有谁知道这是否可行,如果可以,我将如何去做?

4

1 回答 1

1

如果您将文件复制到native您应该具有适当权限的数据文件夹下,然后用于Runtime.exec执行您的文件。

您可以创建一个bin文件夹(或任何名称)并将文件复制到

Process exeProcess = 
         Runtime.getRuntime().exec("/data/data/YOUR_PACKAGE/bin/EXECUTABLE_FILE");

您可以使用该对象exeProcess从可执行文件中读取数据。

于 2013-02-16T21:04:22.813 回答