Google-NDK / Компиляция приложений командной строки C без какого-либо взаимодействия с JNI - PullRequest
3 голосов
/ 24 июня 2011

Android-NDK в основном используется для записи / переноса собственных библиотек, которые можно вызывать из Java с помощью механизма JNI.

У меня есть evalboard на базе ARM для встраивания Android. Эта электронная доска имеет последовательный порт, так что я могу войти в нее с удаленного терминала и затем запускать команды или другие приложения («приложения командной строки» - не приложения Java).

Интересно, возможно ли с помощью Android NDK скомпилировать «чистые» приложения на C, которые я позже буду использовать в качестве команды на удаленной оболочке? Основная идея состоит в том, чтобы воспользоваться инструментарием, предоставленным Google-NDK, для создания кода, который никогда не взаимодействует с машиной Dalvik.

С наилучшими пожеланиями, Apple92

Ответы [ 3 ]

4 голосов
/ 25 июня 2011

Hello World C программа с использованием Android Toolchain - статья, объясняющая, как компилировать с помощью android toolchain.Я думаю, что это полезно для вас.

1 голос
/ 05 июля 2011

Да, есть команда 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
1 голос
/ 24 июня 2011

Да, вы можете компилировать программы командной строки, используя NDK.Если вы посмотрите на любую работающую систему Android, вы найдете много примеров программ командной строки, которые были скомпилированы с использованием того же компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...