2012-06-24 55 views

回答

1

是的,这是可能的,与Android NDK使用C.你可能可能需要扎根为了存储二进制的地方要执行,注意,它不会跑掉SD卡,通常是/ data/local/tmp是一个想到的地方。当您将二进制文件推送到所述位置时,您必须在二进制文件本身上设置权限的执行位才能运行它。很有可能的是,所有权和集体所有者将不得不改变。

您的里程将因ROM而异。

1

目前这是可能的,虽然没有正式支持/鼓励。

最简单的方法是设置一个项目目录,并在其中创建一个包含Android.mk和C源文件的jni文件夹 - 使用hello-jni ndk样本作为指导。

然后将Android.mk中的BUILD_SHARED_LIBRARY更改为BUILD_EXECTUABLE,并像平常一样从父项目目录运行ndk-build。

你也许也可以使用ndk独立工具链生成功能,或者在过去有时会使用各种非官方包装系统来使ndk gcc更易于(ab)使用。

没有多余的地方可以将可执行文件放在安全设备上。由于可执行位的挂载级别阻塞,sdcard已经结束。从大约Android 2.2开始,adb shell用户可以写入/ data/local目录,而在早期版本中,有一个经常被滥用的/ sqlite_stmt_journals目录用于测试。

另一种可能性是使用APK将可执行文件部署到其专用存储中,并使它们在世界上可读和可执行(可能需要jni才能调用chmod()来为其他人设置执行位,或者我想你可以执行chmod shell实用程序)。缺点是shell将不得不使用长/data/data/some.package.name路径,其中中间/数据文件夹不可浏览!

相关问题