2016-10-19 1 views
1

Ich kompiliere eine C++ - Bibliothek auf meinem Android-Gerät verwendet werden.Beste Architektur für C++ Bibliotheken in Android verwendet

Beim Kompilieren der Bibliothek habe ich nicht die Architektur berücksichtigt, für die ich die Bibliothek erstellt habe.

Als Ergebnis habe ich eine 64 Bit dynamisch verknüpfte shared library x86_64, die nur auf 64-Bit-Systemen funktioniert.

Ich beabsichtige, diese Bibliothek mit meinem Android-Gerät mit dem JNA-Tool zu verknüpfen.

Was ist der richtige Weg, um meine C++ - Bibliothek für Android-Architektur und JNA zu kompilieren.

+0

32 Bit würde ich sagen – Hayt

Antwort

1

Sie müssen die Android NDK verwenden.

Abhängig von der Zielarchitektur müssen Sie den entsprechenden Toolchain/Cross-Compiler auswählen, z. ARM, MIPS oder x86.

Siehe Getting Started with the NDK


auch

JNI oder JNA hat nichts mit dem zu tun, wie die Bibliothek gebaut wird. Sie müssen die Bibliothek für Ihre Zielarchitektur erstellen, damit sie auf Ihrem Telefon oder Tablet verwendet werden kann.

Um von Java auf diese Bibliothek zuzugreifen, können Sie entweder JNI oder JNA verwenden.

Mit JNI müssen Sie den Leimcode in C/C++ implementieren. Mit JNA auf der anderen Seite, Sie tun mehr oder weniger das gleiche, aber Sie verwenden eine vorhandene Bibliothek (libffi) und implementieren Sie den Klebstoff-Code in Java. Dies geschieht dynamisch zur Laufzeit und kann als Reflexion für eine Bibliothek angesehen werden.

+0

ich sehe. Das würde bedeuten, meine cpp-Funktionen mit JNI zu verdecken, ja? –

+0

Ich hatte gehofft, JNA stattdessen zu verwenden –

+0

Vielen Dank. Das macht die Dinge klarer. –

Verwandte Themen