2010-08-12 11 views
44

Ich habe das Android-SDK seit einiger Zeit in Eclipse (MAC OSX) ausgeführt. Ich habe das NDK heruntergeladen und die C/C++ - Tools in Eclipse installiert, aber könnte mir jemand bei der Verwendung des NDK helfen? Zum Beispiel, erstelle ich einfach ein Android-Projekt wie normal und baue es stattdessen mit dem NDK?Installieren und Verwenden des Android NDK in Eclipse

Wirklich könnte mit einem anständigen Tutorial tun, wenn jemand davon kennt.

EDIT: OK, also habe ich die NDK jetzt installiert (denke ich) aber hat jemand eine Idee, wie man es benutzt? Ich habe soweit dies (aus here):

Run-Terminal

cd ~/Android-NDK-1.5_r1

make APP = hallo-jni

In Um die Hello-jni Beispielanwendung zu starten, bekomme ich einen Fehler im Terminal:

Andro id NDK: APP Variable definiert unbekannte Anwendungen: hellojni
Android NDK:
build/Kern/main.mk: 81: *** Android NDK: Sie könnten eine der folgenden Optionen verwenden möchten Aborting. Halt.

Irgendwelche Ideen warum?

+0

Gute Frage. Ich muss den NDK für ein Projekt verwenden, an dem ich gerade arbeite, und da gibt es nicht viele gute Informationen. – I82Much

+0

Ja, ich habe heute nicht viel Zeit, aber wenn ich es ausprobiere, werde ich hier updaten ... –

+1

Ich habe hier eine Schritt für Schritt Anleitung geschrieben. http://www.permadi.com/blog/2011/09/setting-up-android-jni-projects-in-windows-eclipse-and-sequoyah/ Hoffe, es hilft. –

Antwort

25

So einfach ich es beschreiben kann, erfordert das Erstellen einer Android-App in Eclipse, die das NDK verwendet, zwei Schritte.

Zuerst müssen Sie in Ihrem Terminal das NDK Build-Skript in Ihrem Projekt ausführen. Wechseln Sie in das Stammverzeichnis Ihres Projektverzeichnisses und führen Sie das Skript ndk-build innerhalb dieses Verzeichnisses aus.

Zum Beispiel:

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

dies Nach tun, sollten Sie eine Ausgabe sehen, die innerhalb des obj Verzeichnisses im Projektverzeichnis in der Schaffung einer * .SO Datei führt.

Sobald Sie die * .SO Datei haben, ist der letzte Schritt zum Erstellen einer Anwendung mit dem Android NDK über Eclipse ist es mit Eclipse wie Sie jede andere Anwendung erstellen und dann zum Testen bereitstellen.

Wenn Sie Änderungen am C/C++ - Code vornehmen, müssen Sie den ersten Schritt wiederholen und Ihre * .SO-Datei neu generieren, bevor Sie Ihre Anwendung erneut in Eclipse erstellen und bereitstellen.

Ich möchte darauf hinweisen, dass mit Android NDK Ihre Android-Apps noch auf Java basieren. Sie kommunizieren nur mit dem in C/C++ geschriebenen Code über die Java Native Interface.

Schließlich sind mir keine Eclipse-Plugins bekannt, die die NDK-Entwicklung unterstützen. Alles, was ich über den NDK weiß, habe ich den offiziellen Android NDK documentation gelernt. Bitte zögern Sie nicht zu kommentieren und lassen Sie es mich wissen, wenn ich etwas in meiner Antwort klären kann.

+2

Hey danke, ich habe diese Frage vor ein paar Jahren geschrieben und habe mich nie wirklich darum gekümmert, also werde ich das in ein paar Tagen ausprobieren. Danke +1 –

+1

Danke ... Ich habe so viele widersprüchliche Antworten gesehen und dieses hat es für mich getan. – Kalle

+0

Klare Antwort, hilfreich –

5

Das docs-Verzeichnis im NDK enthält einige ziemlich gute Informationen zur Verwendung des NDK.Lesen Sie die HTML-Dokumente Übersicht, Application.mk und Android.mk. Sie sollten für die Sun JNI PDF-Datei googlen, sie herunterladen und erfahren, worum es bei JNI geht, bevor Sie weitermachen. Dies liegt daran, dass das einfache Zusammenstellen einer Menge C/C++ - Codes in Bibliotheken mit dem NDK nur ein Teil des Prozesses ist. Sie müssen nativen Java-Code schreiben, der Ihr C/C++ aufruft, und Sie müssen Wrapper-Funktionen in C/C++ erstellen, die den JNI-Konventionen entsprechen, die der native Java-Code aufrufen kann. JNI gibt es schon lange, es ist keineswegs Android-spezifisch. Also, Sie können, um darüber zu lernen, gehen ziemlich weit folgenden Tutorials auf JNI ausgerichtet, mit Kommandozeilen-Tools wie Java und Java und dann wieder zur Integration mit dem NDK, nachdem Sie die Grundlagen kennen. (Für ein Beispiel, wie diese C-Shims aussehen, werfen Sie einen Blick auf das Hallo-Jni-Beispiel in der NDK; die C-Quelldatei dort zeigt Ihnen in der Regel, wie die Shims aussehen. Mit javah, um diese Shims zu generieren ist der Weg zu gehen Sie erstellen Java-Klassen mit nativen Methoden, verarbeiten sie mit javah und generieren die C-Header für Sie. Anschließend codieren Sie C-Funktionen, die den generierten Funktionsprototypen entsprechen.

Hinweis: In den NDK-Dokumenten müssen Sie manuell über die Befehlszeile erstellen und dann in Eclipse gehen, um Ihre App zu erstellen (eine mühsame Abfolge von Schritten, besonders wenn Sie den C/C++ - Code ändern). Es stellt sich heraus, dass Sie problemlos in Eclipse integrieren können, sodass das NDK bei jedem Build von Eclipse ausgeführt wird. Um zu sehen, wie, read here.

1

Um die Frage zu versuchen, direkt zu beantworten - Sie Sie müssen ndk-build im Ordner mit dem systemeigenen Code in Ihrem Projektordner ausführen. Dadurch werden die .so-Dateien erstellt, die in der Datei-Explorer/Ressourcen-Struktur unter jni in Eclipse gefunden werden. Diese Funktionen können, wenn die Syntax im Code korrekt ist, jetzt aus Ihrem Java-Code aufgerufen werden.

Ich habe viele hilfreiche Quellen gefunden, wenn ich Android Developer Tools und das NDK installieren und in den Griff bekommen wollte. Ich schrieb ein blog post meine Erfahrungen zu teilen und hoffentlich für die Gemeinschaft etwas zurückzugeben, die mich dort geholfen zu bekommen, was meine Antwort verstehen helfen kann: http://workingmatt.blogspot.co.uk/2013/03/set-up-android-sdk-and-ndk.html

12

native Entwicklung und Debugging-Unterstützung in Eclipse-Umgebung kamen wie von ADT Version 20. http://tools.android.com/recent/usingthendkplugin

  • Set Pfad zu NDK von eclipse-Einstellungen -> Android -> NDK
  • Rechtsklick auf das Projekt und wählen Android tools -> Add native Unterstützung

developer.android.com sagt, dass Sie auch Cygwin brauchen.

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

Erforderliche Entwicklungstools

  • Für alle Entwicklungsplattformen, GNU 3,81 Stellen oder höher ist erforderlich. Frühere Versionen von GNU Make funktionieren möglicherweise, wurden aber nicht getestet.
  • Eine neuere Version von awk (entweder GNU Awk oder Nawk) ist ebenfalls erforderlich.
  • Für Windows ist Cygwin 1.7 oder höher erforderlich. Das NDK funktioniert nicht mit Cygwin 1.5-Installationen.
+1

Ich habe das total vermisst - danke für die Köpfe! – slott

Verwandte Themen