Android-NDK主要用于编写/移植本机库,可以通过JNI机制从Java调用。
我有一个基于ARM的evalboard嵌入Android。此评估板有一个串口,因此我可以使用远程终端登录,然后启动命令或其他应用程序(“命令行应用程序” - 非Java应用程序)。
我想知道Android NDK是否可以编译“纯”C应用程序,后来我将其用作远程shell上的命令?主要思想是从Google-NDK提供的工具链中获益,以构建永远不会与Dalvik机器交互的代码。
最诚挚的问候, Apple92
答案 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