x86-Version von AllJoyn* für Android*-Plattformen

AllJoyn ist eine plattformübergreifende Bibliothek für die Peer-to-Peer-Kommunikation zwischen verschiedenen Geräten über unterschiedliche Übertragungswege. 
Die Open-Source-Bibliothek (Apache*-Lizenz) wurde ursprünglich vom Qualcomm Innovation Center* entwickelt. Vor zwei Tagen hat sich das Projekt der AllSeen Alliance* angeschlossen und wird nun hier gehostet: https://allseenalliance.org/source-code 
Auf der offiziellen Website steht zwar keine vorkompilierte x86-Version zur Verfügung, die Kompilierung aus den Quellen wird jedoch gänzlich unterstützt. 
Wenn Sie das Release-Paket für Android herunterladen, erhalten Sie Folgendes:

cpp/    Kernfunktionen von AllJoyn, in C++ implementiert
          – aus den Git-Projekten alljoyn_core und common erstellt
          – für alle AllJoyn-Anwendungen erforderlich
java/    optionale Einbindung der Sprache Java*         (erstellt aus alljoyn_java)
          – für Android-Apps erforderlich
c/      optionale Einbindung der Sprache ANSI C          (erstellt aus alljoyn_c)
          – von Unity-Einbindung benötigt
unity/   optionale Einbindung der Sprache Unity        (erstellt aus alljoyn_unity)
about/  implementiert die AllJoyn-About-Funktion   (erstellt aus about.git/(cpp und java))

Wenn Sie die Java-Einbindung alljoyn.jar verwenden, erhalten Sie liballjoyn_java.so in lib/armeabi/. Die Binaries (.so/.a-Dateien) aus diesem Paket sind zwar nur auf ARMv5 ausgelegt, die Kompilierung aus den Quellen wird jedoch gänzlich unterstützt. 
Ich habe die folgende x86-Release-Version für Sie kompiliert: alljoyn-3.4.5-android-sdk-rel-x86.zip. Sie folgt derselben Architektur wie das ARMv5-Release. 
Wenn Sie nur die AllJoyn .jar unter Android verwenden wollen, können Sie die direkt verfügbare liballjoyn_java.so im lib/x86-Verzeichnis Ihrer Android-Anwendung ablegen. 
Wenn Sie die Kompilierung selbst durchführen oder mehr über die einzelnen Schritte erfahren möchten, schauen Sie sich im folgenden Abschnitt an, wie ich vorgegangen bin.

Neukompilierung von AllJoyn für x86-basierte Android-Plattformen 

Beschaffen Sie sich zuerst die Quellen:

git clone https://git.allseenalliance.org/gerrit/core/alljoyn
cd alljoyn

Beschaffen Sie sich anschließend libcrypto.so und libssl.so von einem echten x86-Gerät oder dem x86-Emulator und legen Sie die Dateien in build/android/x86/release/dist/cpp/lib/ ab:

mkdir -p build/android/x86/release/dist/cpp/lib/

adb pull /system/lib/libcrypto.so build/android/x86/release/dist/cpp/lib/
adb pull /system/lib/libssl.so build/android/x86/release/dist/cpp/lib/
Jetzt können Sie die „lib“ für x86 – wie in der Projektdokumentation beschrieben – erstellen; der mühsame Teil besteht darin, dass eine Kopie der AOSP-Quellen benötigt wird:
export CLASSPATH=/usr/share/java/junit.jar
scons OS=android CPU=x86 ANDROID_NDK=/opt/android-ndk ANDROID_SDK=/opt/android-sdk ANDROID_SRC=/home/ph0b/android-build VARIANT=release BINDINGS=cpp,c,java,unity

Dieser Beitrag ist eine Übersetzung des Artikels x86 Version Of Alljoyn For Android Platforms, der zuerst auf der privaten Webseite des Intel Mitarbeiters Xavier Hallade veröffentlicht wurde: http://ph0b.com/alljoyn-for-x86-android-platforms/#more-43

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.