Ответ 1
Во-первых, позвольте мне сказать, что мой ответ зависит от использования NDK r7b (он будет работать и для r7c) в Linux (соответственно, пути изменения для других систем).
Изменить: Последнее тестирование с NDK r8e
в Linux и Nexus 4
с помощью adb
от SDK Platform-Tools Rev 18
в Windows 7 (последняя по состоянию на 2013-07-25) без root доступ.
Еще одно редактирование: Пожалуйста, прочитайте этот вопрос для изменения моей инструкции для собственных двоичных файлов, которые должны запускаться на Android 5.0 (Lollypop) и позже.
- Перейдите в
$NDK_ROOT
(Самая верхняя папка ZIP NDK при распаковке). - Скопируйте каталог
$NDK_ROOT/samples/hello-jni
как$NDK_ROOT/sources/hello-world
. - Перейдите к
$NDK_ROOT/sources/hello-world
. - Изменить
AndroidManifest.xml
, чтобы дать приложению соответствующее имя (это необязательно). - Перейдите к
$NDK_ROOT/sources/hello-world/jni
. Здесь находится исходный код. - Измените
hello-jni.c
, удалите весь код и введите кодhello world
. Шахта:#include int main( int argc, char* argv[]) { printf("Hello, World!"); return 0; }
- Измените
Android.mk
и измените строкуinclude $(BUILD_SHARED_LIBRARY)
наinclude $(BUILD_EXECUTABLE)
. Вы также можете изменить строкуLOCAL_MODULE
на имя, которое вы хотите для своего исполняемого файла (по умолчанию этоhello-jni
) - Вернитесь к
$NDK_ROOT/sources/hello-world
- Запустите
../../ndk-build
, чтобы создать исполняемый файл. - Скопируйте его с
$NDK_ROOT/sources/hello-jni/libs/armeabi/hello-jni
на/data/local/tmp
на Android-устройство и измените его разрешения на 755 (rwxr-xr-x). Если вы изменили строкуLOCAL_MODULE
в$NDK_ROOT/sources/hello-world/jni/Android.mk
, исполняемое имя будет новым значениемLOCAL_MODULE
вместоhello-jni
. (Все это делается черезadb
из Android SDK.) - Выполните двоичный код с полным путем как
/data/local/tmp/hello-jni
или как вы его назвали.
И вы закончили (и можете бесплатно начать работу с документацией в $NDK_ROOT/docs, чтобы лучше понять, что делать).