Подтвердить что ты не робот

Установка и использование Android NDK в Eclipse

Я запустил Android SDK некоторое время в Eclipse (MAC OSX). Я загрузил NDK и установил инструменты C/С++ в Eclipse, но может ли кто-нибудь направить меня на использование NDK? Например, я просто создаю проект Android, как обычно, и вместо него создаю его с помощью NDK?

На самом деле это можно сделать с помощью достойного учебника, если кто-нибудь знает о нем.

EDIT: ОК, поэтому у меня установлен NDK (я думаю), но кто-нибудь знает, как его использовать? Я дошел до этого (взято из здесь):

Запустить терминал

cd ~/android-ndk-1.5_r1

сделать APP = hello-jni

Чтобы запустить приложение hello-jni sample, но я получаю сообщение об ошибке в терминале:

Android NDK: переменная APP, определенная для неизвестные приложения: hellojni
Android NDK: вы можете использовать одно из следующего:
build/core/main.mk: 81: *** Android NDK: Отмена. Стоп.

Любые идеи, почему?

4b9b3361

Ответ 1

Как я могу это описать, создание приложения Android из Eclipse, использующего NDK, требует двух шагов.

Во-первых, внутри вашего терминала вам нужно запустить NDK build script в вашем проекте. cd в корневой каталог вашего проекта, а затем выполните ndk-build script внутри этого каталога.

Например:

cd ~/workspace/hello-jni
./~/android-ndk-1.5_r1/ndk-build

После этого вы должны увидеть некоторый вывод, результатом которого является создание файла *.SO в каталоге obj в каталоге проекта.

После того, как у вас есть файл *.SO, последний шаг к созданию приложения с Android NDK через Eclipse - это его создание с помощью Eclipse, как и любое другое приложение, а затем развертывание для тестирования.

Если вы внесете какие-либо изменения в код C/С++, вам нужно будет повторить первый шаг и восстановить файл *.SO, прежде чем снова создавать и развертывать ваше приложение из Eclipse.

Я хотел бы отметить, что с помощью Android NDK ваши приложения для Android все еще основаны на Java. Они просто общаются с кодом, написанным на C/С++, с помощью Java Native Interface.

Наконец, я не знаю никаких плагинов Eclipse, которые помогут в разработке NDK. Все, что я знаю о NDK, я узнал официальную документацию по Android NDK. Пожалуйста, не стесняйтесь комментировать и дайте мне знать, если что-нибудь, что я смогу прояснить в своем ответе.

Ответ 2

Встроенная поддержка разработки и отладки появилась в среде Eclipse по версии ADT версии 20. http://tools.android.com/recent/usingthendkplugin

  • Установить путь к NDK из Eclipse Preferences → Android → NDK
  • Щелкните правой кнопкой мыши свой проект и выберите "Инструменты Android" → "Добавить основную поддержку"

developer.android.com утверждает, что вам также нужен Cygwin.

http://developer.android.com/tools/sdk/ndk/index.html#Contents

Необходимые инструменты разработки

  • Для всех платформ разработки требуется GNU Make 3.81 или новее. Более ранние версии GNU Make могут работать, но не были протестированы.
  • Также требуется последняя версия awk (либо GNU Awk, либо Nawk).
  • Для Windows требуется Cygwin 1.7 или выше. NDK не будет работать с установками Cygwin 1.5.

Ответ 3

В каталоге docs в NDK есть довольно хорошая информация о том, как использовать сам NDK. Прочтите обзор документов, приложений .mk и Android.mk. Вы захотите сделать Google для Sun JNI PDF, загрузить его и узнать, что такое JNI, прежде чем идти дальше. Это связано с тем, что просто компиляция куча кода C/С++ в библиотеки с NDK является лишь частью процесса. Вы должны написать собственный Java-код, который вызывает ваш C/С++, и вы должны создавать функции-оболочки в C/С++, которые придерживаются JNI-соглашений, которые может вызвать собственный Java-код. JNI существует уже давно, а не Android. Итак, вы можете, чтобы узнать об этом, довольно далеко, следуя учебникам, ориентированным на JNI, используя инструменты командной строки, такие как javah и javac, а затем возвращайтесь к интеграции с NDK после того, как вы знаете основы. (Пример того, как выглядят эти прокладки C, посмотрите на образец hello-jni в NDK, исходный файл C показывает, как обычно выглядят прокладки. Использование javah для создания этих прокладок - путь, вы создаете классы Java, которые имеют собственные методы, обрабатывают их с помощью javah и генерируют для вас заголовки C, затем вы кодируете функции C, которые придерживаются созданных прототипов функций).

Примечание: в то время как в документах NDK вы вручную создавали бы из командной строки, а затем отправлялись в Eclipse для создания вашего приложения (это была бы трудоемкая последовательность шагов, особенно если вы меняете код C/С++), это получается, что вы легко можете интегрировать с Eclipse, чтобы NDK запускался каждый раз, когда вы строите с Eclipse. Чтобы узнать, как, читайте здесь.

Ответ 5

Чтобы попытаться ответить на вопрос напрямую - вам нужно запустить ndk-build в папке с собственным кодом в папке проекта. Это создает файлы .so, найденные в дереве файлового проводника/ресурсов под jni в Eclipse. Эти функции, если синтаксис в коде верен, теперь можно вызывать из вашего java-кода.

Я нашел много источников помощи при установке и доступе к инструментам разработчика Android и NDK. Я написал сообщение , чтобы поделиться своим опытом и, надеюсь, вернуть сообщество, которое помогло мне добраться туда, что может помочь понять мой ответ: http://workingmatt.blogspot.co.uk/2013/03/set-up-android-sdk-and-ndk.html