Google-NDK /编译命令行C应用程序,没有任何JNI交互

时间:2011-06-24 18:31:17

标签: c android-ndk

Android-NDK主要用于编写/移植本机库,可以通过JNI机制从Java调用。

我有一个基于ARM的evalboard嵌入Android。此评估板有一个串口,因此我可以使用远程终端登录,然后启动命令或其他应用程序(“命令行应用程序” - 非Java应用程序)。

我想知道Android NDK是否可以编译“纯”C应用程序,后来我将其用作远程shell上的命令?主要思想是从Google-NDK提供的工具链中获益,以构建永远不会与Dalvik机器交互的代码。

最诚挚的问候, Apple92

3 个答案:

答案 0 :(得分:4)

Hello World C program using Android Toolchain是一篇解释如何使用android工具链进行编译的文章。我觉得它对你有用。

答案 1 :(得分:1)

是的,您可以使用NDK编译命令行程序。如果你看看任何正常运行的Android系统,你会发现很多使用相同编译器编译的命令行程序的例子。

答案 2 :(得分:1)

是的,有BUILD_EXECUTABLE命令,其作用类似于BUILD_SHARED_LIBRARY但产生可执行文件。 诀窍是你的可执行文件依赖的库 - 它们要么已经在设备上(/ system / bin),要么你必须用你的可执行文件上传它们。

我想出了以下脚本来上传和执行测试:

#!/bin/sh

adb shell rm -r /data/temp
adb shell mkdir /data/temp

for i in dst/* 
do
  adb push ${i} /data/temp
done

cat <<EOF | adb shell
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/data/temp
/data/temp/test
exit
EOF