Zuvor sind wir die Anweisungen zum Kompilieren einer FFmpeg-Bibliothek unter x86-Architektur durchgegangen. Diese Schritt-für-Schritt-Anleitung führt Sie durch den Prozess der Einrichtung und Kompilierung verschiedener Bibliotheken, die in Spielen und Multimedia speziell für x86-Zielplattformen genutzt werden. Wir die Einrichtung von FMOD* Cocos2D-x* und OpenAL* durchgehen.
Einrichtung und Voraussetzungen:
Bevor wir beginnen, müssen wir bestimmte Download-Voraussetzungen erfüllen.
- Laden Sie das Android ADT Bundle herunter
- Laden Sie NDK herunter
- Laden Sie Cygwin* herunter und installieren Sie es: Wenn Sie aufgefordert werden, suchen Sie nach den folgenden Paketen und installieren Sie sie:
Autoconf, Automake, binutils, gcc-core, gcc-g++, gcc4-core, gcc4-g++, gdb, pcre, pcre-devel,
gawk, make, pythonHINWEIS: Wählen Sie auch die GUI-Version von make; andernfalls werden Sie nicht in der Lage sein Ihr Projekt mit NDK zu erstellen.
- Laden Sie JDK herunter
- Laden Sie Apache Ant herunter
Nun müssen Sie einige Umgebungsvariablen bearbeiten.
- Stellen Sie als JAVA_HOME = den Pfad ein, unter dem Sie das Java* JDK installiert habe, dies ist für mich:
C:\Program Files\Java\jdk1.7.0_45
- Stellen Sie als ANDROID_SDK_ROOT = den vollständigen Pfad zum SDK-Ordner ein. Zum Beispiel: in meinem Fall, habe ich das ADT-Bundle nach
D:\android
heruntergeladen und installiert, also ist mein Pfad:D:\android\adt-bundle-windows-x86-20131030\sdk
- Stelle Sie als NDK_ROOT = den vollständigen Pfad zum NDK-Ordner ein, mein Pfad ist:
D:\android\android-ndk-r9b
- Stelle Sie als NDK_ROOT = den vollständigen Pfad zum NDK-Ordner ein, mein Pfad ist:
D:\android\android-ndk-r9b
- Aktualisieren Sie die Path Variable, um folgendes zu enthalten = Pfad zum JDK-Ordner, JDK bin-Ordner, NDK, Cygwin bin-Ordner, ANT bin-Ordner, SDK tools-Ordner und SDK platform-tools-Ordner, jeweils durch ein Semikolon (;) getrennt. Zum Beispiel werde ich in meinem Fall Folgendes hinzufügen:
D:\cygwin64\bin;C:\Program Files\Java\jdk1.7.0_40\bin;D:\android\adt-bundle-windows-x86_64-20131030\sdk\tools;D:\android\adt-bundle-windows-x86_64-20131030\sdk\platform-tools;%JAVA_HOME%\bin;%ANT_HOME%\bin
HINWEIS: Beenden Sie die Variable nicht mit \ oder ` oder irgendeinem solchen Sonderzeichen.
FMOD
FMOD ist eine kommerzielle Bibliothek, um Audio zu verwalten. FMOD ist eine Zusammenstellung von Audio-Content-Erstellungswerkzeugen, die Musikdateien verschiedener Formate auf vielen verschiedenen Betriebssystemplattformen abspielt, die in Spielen und Software-Anwendungen verwendet werden, um Audio-Funktionalität bereitzustellen. Nachfolgend finden Sie eine Schritt-für-Schritt-Anleitung für die Integration der FMOD Bibliothek in eine Android-Anwendung mit Hilfe der Eclipse-IDE* speziell für eine x86-Zielplattform.
FMOD herunterladen. Laden Sie die Android-Version der FMOD Ex API für Programmierer, wie unten dargestellt, herunter:
Um FMOD zu installieren, extrahieren Sie „fmodapi44429android.tar.gz
“ mit einem Werkzeug wie 7-zip in einen beliebigen Ordner Ihrer Wahl.
Erstellung mit Android NDK:
Um Geräusche durch FMOD Ex API zu implementieren, müssen Sie sie als C/C++ Programme in Ihren Code einbinden und sie durch jni
in Ihrer Android-Anwendung referenzieren.
FMOD bringt C/C++ Bibliotheken mit, die über JNI aufgerufen oder mit der C/C++ Komponente Ihrer Anwendung verknüpft werden können:
libfmodex.so
für die allgemeine Entwicklung.libfmodexL.so
für die gleiche Bibliothek, aber mit Debug-Protokollierung, die helfen kann, Probleme zu ermitteln, falls diese vorhanden sind.
FMOD Bibliotheken werden derzeit für die armeabi und armeabi-V7A ABIs gegen android-3 erstellt, und die x86-ABI gegen android-9 erstellt, angeboten.
{$FMOD INSTALLED PATH}\api\lib\$(ABI)
Die vollständig native Audio-Schnittstelle OpenSL ist das Standard-Wiedergabeverfahren für Geräte, die es unterstützt (android-9) und erfordert keine zusätzlichen Dateien. Bei Geräten ohne OpenSL-Unterstützung, müssen Sie den Audiospur-Ausgabemodus verwenden, der eine FMOD jar-Datei erfordert. Diese jar-Datei muss Ihrer Java-Anwendung hinzugefügt werden, um den die FMOD Audio-Ausgabe zu initialisieren und anzutreiben:
fmodex.jar
Dies wird im nächsten Abschnitt besprochen.
HINWEIS: Da die hier verwendete Beispielanwendung ein Teil der Bibliothek ist, haben wir den Code nicht für das Beispiel eingeschlossen; stattdessen sind nur die notwendigen Änderungen in diesem Dokument angegeben.
Java Initialisierung
Um den Audioausgang über den Audiospur-Ausgabemodus zu aktivieren, müssen Sie den FMOD Java-Audiotreiber in Ihre Anwendung einbinden und initialisieren (nicht erforderlich, wenn Sie den OpenSL Ausgabemodus verwenden). Um dies zu tun, müssen Sie sicherstellen, dass fmodex.jar
in Ihrem Java-Projekt referenziert ist und Sie das org.fmod.FMODAudioDevice
Paket importiert haben. Der FMOD Java-Audio-Treiber erfordert auch, dass Ihre Anwendung die fmodex
Bibilothek lädt.
Die FMODAudioDevice
Klasse hat zwei Funktionen, die Sie aufrufen müssen, um Audio abzuspielen. Sie kann jederzeit aufgerufen werden, aber wir empfehlen, dass Sie die start()
und stop()
Funktionsaufrufe in die onStart()
und onStop()
Übersteuerung Ihrer Aktivität setzen.
Ein Beispielprogramm für Android auf der x86-Plattform erstellen
Das Verfahren für die Erstellung eines Programms ist das gleiche wie die Erstellung NDK. Betrachten wir ein Beispiel, um dies zu zeigen. Für dieses Beispiel werden wir das Beispielprogramm verwenden, dass sich im folgenden Ordner befindet:
{$FMOD INSTALLED PATH}\examples\playsound
Wir werden dies {$PROJECT DIRECTORY}
nennen. Aber bevor wir es mithilfe von NDK erstellen, müssen wir bestimmte Änderungen vornehmen:
- Gehen Sie in das Verzeichnis
{$PROJECT DIRECTORY}\jni
und öffnen dieApplication.mk Datei
. - Ändern Sie den folgenden Code:
APP_ABI := armeabi armeabi-v7a
inAPP_ABI := x86
Öffnen Sie nun Cygwin und führen Sie die folgenden Aufgaben durch, um die Anwendung zu erstellen:
ndk-build
- Aktualisieren Sie die PATH Variable in Cygwin wie folgt:
export PATH=.:/cygdrive/{$PATH TO NDK}:$PATH
- cd zum Pfad des Projektes:
cd /cygdrive/{$PROJECT DIRECTORY}
- Führen Sie den Befehl aus:
- Dies wird das Projekt erstellen und es für den Einsatz bereit machen.
HINWEIS: In diesem Fall ersetzen Sie alle „\“ Zeichen aus dem Windows* Pfadformat mit „/“ Zeichen für das GNU basierte Pfadformat.
Am Ende einer erfolgreichen Erstellung sehen Sie die folgende Meldung in Cygwin:
[x86] Prebuilt | : libfmodex.so <= jni/../../../api/lib/x86/ |
[x86] Install | : libfmodex.so => libs/x86/libfmodex.so |
[x86] Cygwin | : Erzeugen Abhängigkeitsdatei-Konverter-Skript |
[x86] Compile | : main <= main.c |
[x86] SharedLibrary | : libmain.so |
[x86] Install | : libmain.so => libs/x86/libmain.so |
Nun, da Ihr Projekt erstellt wurde, kann es durch die Eclipse-IDE ausgeführt werden.
Ausführen der Anwendung durch Eclipse-IDE
Um die Anwendung von Eclipse-IDE aus zu starten, gehen Sie folgendermaßen vor:
- Starten Sie Eclipse und klicken Sie auf Datei > Importieren:
- Wählen Sie die Android vorhanden... Option und klicken Sie auf Weiter:
- Navigieren Sie zum Stammverzeichnis des Projekts, d. h.,
{$PROJECT DIRECTORY}
, dann stellen Sie sicher, dass die Option Projekte kopieren... nicht markiert ist und klicken Sie auf Fertig stellen: - Sie werden ein rotes Ausrufezeichen auf dem importierten Projekt in der Registerkarte Paket-Explorer bemerken, wie unten dargestellt:
- Um dies zu beheben, klicken Sie auf Fenster > Einstellungen, wie auf der vorherigen Seite gezeigt, und das folgende Fenster erscheint:
- Klicken Sie auf die Option Neu... und Sie werden folgendes sehen:
- An die Stelle des „Name“ Feldes, geben Sie ein:
FMOD_LIB
- Dann klicken Sie auf Datei, und durchsuchen, um Sie die folgende Datei zu finden:
{$FMOD INSTALLED PATH}/api/lib/fmodex.jar
- Klicken Sie auf OK.
- Dann klicken Sie erneut auf OK und das folgende Fenster wird erscheinen; klicken Sie auf Ja:
- Das Fehler mit dem roten Ausrufezeichen wird behoben sein.
- Klicken Sie dann auf Projekt > Eigenschaften.
- Wählen Sie dann C/C++ Build > Umgebung > Hinzufügen:
- Geben Sie ANDROID_NDK_ROOT in das Feld Name und den vollständigen Pfad zu dem installierten Ordner in das Feld Wert ein. Dann klicken Sie auf OK:
- Klicken Sie dann auf Übernehmen und dann auf OK:
Jetzt können Sie die Anwendung starten, aber erst nachdem Sie alle Dateien aus den beiden Sätzen von Beispielmedien kopieren:
{$FMOD INSTALLED PATH}\examples\media\* und
{$FMOD INSTALLED PATH}\fmoddesignerapi\examples\media\*
In einen Ordner namens fmod
im Wurzelverzeichnis der SD-Karte.
HINWEIS: Die Anwendung kann fehlschlagen, im Simulator zu starten.
x86-Plattformspezifische Einstellungen
Es ist wichtig, wenn eine Anwendung speziell für die x86-Plattform erstellt wird, dass Sie die folgenden Änderungen vornehmen: (Bitte beachten Sie, dass diese Veränderungen als Teil des Verfahrens in die Erstellung des Projekts aufgenommen wurde.)
- Gehen Sie in das Verzeichnis
{$PROJECT DIRECTORY}\jni
und öffnen die Application.mk Datei (erstellen Sie ein, falls nicht vorhanden). - Ändern Sie den folgenden Code:
APP_ABI := armeabi armeabi-v7a
inAPP_ABI := x86
Build-Ausgabe
Die Ausgabe der Erstellung wird sich im {$PROJECT DIRECTORY}
Ordner in der folgenden Weise befinden:
Die erzeugten Bibliotheken, libmain.so
und libfmodex.so
, werden sich im {$PROJECT DIRECTORY}\libs\x86
Ordner befinden.
Die erzeugten Objekte werden sich im {$PROJECT DIRECTORY}\obj
Ordner befinden.
Bekannte Fehler und Probleme
Wenn es Fehler während der Erstellung durch NDK gibt, stellen Sie die Zugriffsrechte auf „Vollständig“ für „Jeden“.
Bitte beachten Sie auch, dass die Anwendung möglicherweise nicht im Emulator startet und dass Sie erst dann in der Lage sind die Anwendung auf Ihrem Gerät zu starten, nachdem Sie alle Dateien aus den beiden Sätzen der Beispieldateien kopiert haben.:
{$FMOD INSTALLED PATH}\examples\media\* und
{$FMOD INSTALLED PATH}\fmoddesignerapi\examples\media\*
In einen Ordner namens fmod
im Wurzelverzeichnis der SD-Karte.
Cocos2D-x:
So, nun lassen Sie uns durch den Erstellungsprozess einer Cross-Plattform Android-Anwendung mit Hilfe der Cocos2d-x-Game-Engine speziell für die x86-Zielplattform gehen.
Das in diesem Dokument verwendete Beispielprogramm, um den Prozess zu erklären, ist Teil der Cocos2d-x Game Engine und kann im \samples\Cpp\
Ordner innerhalb des cocos2d-x-2.1.1
Ordners gefunden werden.
Cocos2d-X ist ein in C++ geschriebener Multi-Plattform-Port, der mit iOS*, Android, Windows, Marmalade, Linux*, Bada und BlackBerry* 10 verwendet werden kann. Dieser Port hat Lua* und JavaScript* als das Skripteinbindung. Sie können die Cocos2d-X Support-Dokumentation auf ihrer Webseite lesen.
Vor der Verwendung von Cocos2d-x, seien Sie sicher, dass Sie die Voraussetzungen, wie oben im Abschnitt Voraussetzungen beschrieben, erfüllt haben.
Laden Sie Cocos2d-x herunter:
Laden Sie Cocos2d-x herunter und wählen Sie die neueste Version. Denken Sie auch daran, die einfache Cocos2d-x-Option und nicht die -html5 Option zu wählen.
Schritte zum Installieren und Einrichten von Cocos2d-X:
- Entpacken Sie die im vorherigen Schritt heruntergeladene Zip-Datei in Ihr
C: \
Laufwerk. Ich habe meines nachD:\Cocos2d-x
entpackt. - Es sollten sich zwei Ordner im Cocos2d-x Ordner befinden. Für mich sind dies:
D:\Cocos2d-x\__MACOSX
undD:\Cocos2d-x\cocos2d-x-2.2.1
. - Richten Sie die Umgebungsvariablen für Cocos2d-x wie unten dargestellt ein:
COCOS2DX_ROOT = der komplette Pfad zum
cocos2d-x-2.2.1
Ordner, in meinem Fall ist dies:D:\Cocos2d-x\cocos2d-x-2.2.1
Bevor wir beginnen, notieren Sie sich ein paar Variablen, da sie im weiteren Verlauf häufig verwendet werden:
{$ADT PATH}
= der vollständige Pfad zum Android ADT-Bundle, in meinem Fall ist dies:D:\android\adt-bundle-windows-x86_64-20131030
{$ECLIPSE PATH}
= der vollständige Pfad zum zusammen mit dem ADT-Bundle gelieferten Eclipse, für mich ist dies:{$ADT PATH}\eclipse
{$COCOS2D-X PATH}
= der vollständige Pfad zum cocos2d-x-2.2.1 Ordner, in meinem Fall ist dies:D:\Cocos2d-x\cocos2d-x-2.2.1
{$WORKSPACE PATH}
= der vollständige Pfad zum Eclipse Android Arbeitsbereich, für mich ist dies:D:\and_proj_coco
Ein Cocos2d-x-Projekt in Eclipse-IDE konfigurieren:
- Führen Sie Eclipse vom folgenden Pfad aus:
{$ECLIPSE PATH}\eclipse.exe
- Erstellen Sie Ihren Arbeitsbereich, wenn Sie dazu aufgefordert werden. Ich haben meinen in
{$WORKSPACE PATH}
, wie unten gezeigt, erstellt: - Klicken Sie auf Datei > Importieren, wie unten dargestellt:
- Ein Fenster wie das unten gezeigte erscheint:
- Erweitern Sie den Abschnitt Android. Dann klicken Sie auf die Option Vorhandenen Android Code in Arbeitsbereich und klicken Sie auf Weiter, wie oben gezeigt.
- Klicken Sie auf Durchsuchen…, wie unten dargestellt:
- Navigieren Sie zu
{$COCOS2D-X PATH}\samples\Cpp\HelloCpp\proj.android
, wie unten dargestellt, und klickent Sie auf OK: - Für dieses Beispiel, bevor Sie auf Fertig stellen klicken, stellen Sie sicher, dass Sie die Option Projekte in den Arbeitsbereich kopieren NICHT MARKIERT haben:
- Nach dem Import könnte Eclipse ein paar Fehler anzeigen. Vorerst ignorieren Sie diese und fahren mit den nächsten Schritten fort.
HINWEIS: In der Zukunft, wenn Sie den ursprünglichen Projekt-Code nicht durcheinanderbringen möchten und zuversichtlich sind, dass das Importieren des Projekt-Codes in Ihren Arbeitsbereich keine Auswirkungen auf die Ausführung des Codes hat, dann können Sie die oben eingekreiste Option aktivieren.
- Wiederholen Sie nun die Schritte c – h mit dem Unterschied dass anstelle des Imports von
{$COCOS2D-X PATH}\samples\Cpp\HelloCpp\proj.android
, werden Sie:{$COCOS2D-X PATH}\cocos2dx\platform\android
importieren, wie unten gezeigt, Sie können die Option Projekt in Arbeitsbereich kopieren markieren, falls Sie möchten: - Falls die in Schritt h angetroffenen Fehler nicht gelöst werden, fahren Sie mit den Schritten, wie unten, fort.
- Nun rechtsklicken Sie in der Registerkarte Paket-Explorer auf der linken Seite auf libcocos2dx und klicken Sie auf Eigenschaften, wie unten dargestellt:
- In dem erscheinenden Fenster klicken Sie auf die Option Android in der linken Registerkarte und stellen Sie sicher, dass die Option Bibliothek aktiviert ist, wie unten dargestellt, und klicken Sie auf Übernehmen und schließlich auf OK.
- Ähnlich, öffnen Sie das Eigenschaftsfenster für das HelloCpp Projekt, indem Sie die Schritte j – k für das HelloCpp Projekt befolgen. Sie werden dann ein Fenster, wie unten dargestellt, sehen:
- Entfernen Sie alles in Abschnitt Bibliothek mit einem roten Kreuz markierte und klicken Sie auf Hinzufügen.
- Wählen Sie libcocos2dx und klicken Sie auf OK, wie unten dargestellt:
- Nun sehen Sie, dass der Abschnitt Bibliothek mit einem grünen Häkchen bestückt wird, wie unten dargestellt, und klicken Sie auf Übernehmen und OK:
- An dieser Stelle wird Eclipse das Projekt neuerstellen. Wenn alle Fehler behoben sind, dann ignorieren Sie diesen Schritt. Falls nicht, dann löschen Sie das vorhandene HelloCpp Projekt in der Registerkarte Paket-Explorer und stellen Sie sicher, dass Sie beim Löschen NICHT wählen, es von der Festplatte zu entfernen, da dies NICHT RÜCKGÄNGIG GEMACHT WERDEN KANN, und wiederholen Sie die Schritte c – h und Schritte m – p:
- Nun sollte Ihr Projekt wie folgt aussehen:
Glückwunsch! Sie haben Ihr Projekt erfolgreich in Eclipse IDE geöffnet. Fahren wir nun mit der Erstellung Ihres Projekts fort.
Ein Cocos2d-x Projekt in der Eclipse IDE erstellen:
- In der Registerkarte Paket-Explorer, navigieren Sie zu HelloCpp > Jni > Application.mk wie unten dargestellt:
- Fügen Sie die folgende Zeile hinzu, um für die x86 Plattform zu erstellen:
APP_ABI := x86
- Nun, aus der Registerkarte Projekt in der oberen Menüleiste, klicken Sie zuerst auf Sauber, dann Projekt erstellen, wie unten dargestellt:
Ein Cocos2d-x Projekt durch Cygwin öffnen und erstellen:
- Führen Sie Cygwin aus und navigieren Sie mit dem folgenden Befehl zum Beispiel HelloCpp Projektordner:
cd /cygdrive/d/Cocos2d-x/cocos2d-x-2.2.1/samples/Cpp/HelloCpp/proj.android
Beachten Sie, dass der Pfad von
{$COCOS2D-X PATH}
abhängt. - Stellen Sie sicher, dass die folgende Zeile der Datei Application.mk im /jni Ordner hinzugefügt ist:
APP_ABI := x86
- Um das Projekt zu erstellen, während Sie im /proj.android Ordner verbleiben, geben Sie den Befehl ein:
./build_native.sh
HINWEIS: Wenn Fehler auftreten, stellen Sie sicher, dass:
- Die erforderlichen Pakete für Cygwin korrekt heruntergeladen sind.
- Die PATH-Variable von Cygwin die Pfade zu den Android NDK, SDK, JDK und COCOS2D-X Ordnern, wie im Abschnitt Voraussetzung erwähnt, enthält.
Sobald der Erstellprozess erfolgt und abgeschlossen ist, werden die Binärdateien im folgenden Ordner erstellt:
proj.android\obj\local\x86
Zum Beispiel:
proj.android\obj\local\x86\libhellocpp.so
proj.android\obj\local\x86\libcocos2d.a
OpenAL (Open Audio Library)
OpenAL (Open Audio Library) ist eine Cross-Plattform Audio-Schnittstelle für Anwendungsprogrammierung (API). Sie wurde für die effiziente Wiedergabe von mehrkanaligem, dreidimensionalem Raumklang entwickelt. Ihr API-Stil und ihre Konventionen ähneln bewusst denen der OpenGL. Seit 1.1, hat Creative ihre Implementierung proprietär. Jedoch ist OpenAL-Soft eine weit verbreitete Open-Source-Alternative. Wir werden eine Version von OpenAL-Soft verwenden, die speziell für Android angepasst ist.
Bevor wir beginnen auf OpenAL zu arbeiten, laden Sie bitte entsprechend des obigen Abschnitts Voraussetzungen herunter.
Laden Sie eine gepatchte Quelle von OpenAL herunter:
Um mit OpenAL zu arbeiten, benötigen Sie eine gepatchte Quelle, die speziell für Android angepasst ist.
Dank Martins Mozeiko und Chris Robinson ist eine Version von OpenAL vorhanden, die an die Android-Plattform angepasst wurde. Laden Sie die neueste Version des gepatchten OpenAL-Quellcodes herunter.
Alternativ können Sie diese Quelle auch über Ihr Cygwin-Terminal herunterladen:
- Führen Sie Cygwin aus und geben Sie den folgenden Befehl ein:
git clone http://repo.or.cz/r/openal-soft/android.git OpenAL
- Jetzt wird das Repository in einem Ordner namens OpenAL in Ihrem pwd geklont, für mich ist es: /home/user001 oder ~.
HINWEIS: Im Falle der Windows-Version von Cygwin kann der /home-Ordner in dem Verzeichnis gefunden werden, in dem Cygwin installiert ist. In meinem Fall ist es: D:\cygwin64
Wie für die x86-Plattform konfigurieren:
Bevor wir mit dem Erstellen beginnen, erstellen Sie ein normales Hello OpenAL Android-Projekt. Belassen Sie den Pfad für den Projektordner als {$PROJECT_DIR}, wie: D:\openal_proj\HelloOpenAL.
Zum Kompilieren mithilfe von OpenAL für Android, gehen Sie folgendermaßen vor:
- Um OpenAL zu kompilieren, wird eine Datei namens config.h benötigt. Kopieren Sie es von
{$OPENAL_DIR}/android/jni
Nach{$OPENAL_DIR}/include
HINWEIS: Hier ist,
{$OPENAL_DIR}
der komplette Pfad zum heruntergeladenen OpenAL-Verzeichnis aus dem vorherigen Schritt. Für mich ist dies:~/openal
- Nachdem Sie die obigen Änderungen durchgeführt haben, kopieren Sie diesen OpenAL Ordner in Ihren Projektordner
{$PROJECT_DIR}
. - Fügen Sie dem Projekt nun die native Schnittstelle in den nachfolgenden Schritten hinzu.
- Ich habe die
org_pielot_helloopenal_HelloOpenAL.c
Datei verwendet, um die Audiowiedergabe-Methoden von der nativen Schnittstelle zu implementieren. - Dann müssen wir zwei Make-Dateien, Android.mk und Application.mk, erstellen und sie in den
jni
Ordner zusammen mit dem.c
Ordner und seiner benutzerdefinierten.h
Header-Datei kopieren.HINWEIS: Die Details dieser Dateien und deren Gliederung wird am Ende dieses Dokuments gegeben.
Um das Projekt speziell für x86 zu konfigurieren, stellen Sie sicher, dass die folgenden Dateien bearbeitet werden, um die jeweiligen angegebenen Werte zu enthalten:
Application.mk
APP_OPTIM := release
APP_ABI := x86
Wie das Projekt erstellen:
- Öffnen Sie Cygwin und navigieren Sie zu
{$PROJECT_DIR}
:cd /cygdrive/{$PROJECT_DIR}
wobei
{$PROJECT_DIR}
der vollständige Pfad zum Projektverzeichnis ist. In meinem Fall ist es:cd /cygdrive/d/openal_proj
- Führen Sie nun den folgenden Befehl aus, um den Pfad zum NDK-Ordner in Ihre Cygwin PATH Umgebungsvariable aufzunehmen:
export PATH=.:/cygdrive/{$PATH TO NDK}:$PATH
Zum Beispiel, in meinem Fall:
export PATH=.:/cygdrive/d/android/android-ndk-r9b:$PATH
- Führen Sie den Befehl aus:
ndk-build
Dies wird Ihr OpenAL Projekt für die x86-Zielarchitektur erstellen.
Build-Ausgabe:
Die Ausgabe der Erstellung wird sich in {$PROJECT_DIR}
befinden:
Die erzeugten Bibliotheken, libopenal.so
und libopenaltest.so
, werden sich im {$PROJECT_DIR}\libs\x86
Ordner befinden.
Die erzeugten Objekte werden sich im {$PROJECT_DIR}\obj
Ordner befinden.
OpenSSL* Bibliotheken:
Das folgende Verfahren beschreibt, wie man OpenSSL-Bibliotheken für Android auf x86 erstellt.
Voraussetzungen
- Ein Host-PC mit Windows 7 oder höher.
- Da die OpenSSL-Bibliotheken in nativer C-Sprache entwickelt wurden, ist die primäre Voraussetzung für die Kompilierung das Android NDK, welches die integrierte Unterstützung für Cross-Kompilierung der Bibliotheken für spezifische Architekturen (ARM, x86, etc.) hat.
Die Android OpenSSL Quelle kann entweder aus dem eighthave project oder dem guardian project auf github heruntergeladen werden.
Für x86 erstellen:
Cross-Plattform Einstellungen können wie für jede andere Android-Anwendung mithilfe der Application Binary Interface-Einstellungen vorgenommen werden.
Die folgende Zeile sollte der jni/Application.mk Datei hinzugefügt werden, um Bibliotheken für die x86-Architektur zu erstellen.
APP_ABI := x86
Sobald Sie das NDK installiert und die Android OpenSSL heruntergeladen und auf eine lokale Festplatte (zum Beispiel C:\openssl-android-master) entpackt haben, befolgen Sie die Anweisungen unten, um die Bibliotheken für x86 zu erstellen:
- Öffnen Sie die Eingabeaufforderung (Start-> Programme-> Zubehör-> Eingabeaufforderung).
- Wechseln Sie in dem OpenSSL Android Ordner, den Sie heruntergeladen und entpackt haben, zum Beispiel,
> cd C:\openssl-android-master. - Achten Sie darauf, die erforderlichen Konfigurationseinstellungen für x86 einzustellen, zum Beispiel APP_ABI := x86.
- Erteilen Sie den NDK Erstellen-Befehl, zum Beispiel, C:\openssl-android-master > ndk-build.
Dies wird die libssl, libcrypto, OpenSSL-Bibliotheken erstellen.
Die erzeugten Bibliotheken können am folgenden Ort gefunden werden:
C:\openssl-android-master\libs\x86\libcrypto.so
C:\openssl-android-master\libs\x86\libssl.so
Über den Autor
Praveen Kundurthy arbeitet für die Intel® Software und Services Gruppe. Er hat einen Master-Abschluss in Computer Engineering. Seine Hauptinteressen sind mobile Technologien, Windows und die Spiele-Entwicklung.
Verwandte Artikel und Ressourcen
- Entwicklung und Optimierung für NDK-basierte Android Spiel-Anwendungen auf Plattformen mit Intel® Architektur
- Wie Sie den Intel® Hardware Accelerated Execution Manager (Intel® HAXM) Android* Emulator mit Google APIs verwenden
- Entwicklung und Optimierung für NDK-basierte Android Spiel-Anwendungen auf Plattformen mit Intel® Architektur
- Bereitstellen von Apps auf Google Play*