2016-10-19 4 views
1

Я компилирую библиотеку C++, которая будет использоваться на моем устройстве Android.Лучшая архитектура для библиотек C++, используемая в Android

При компиляции библиотеки я не принимал во внимание архитектуру, для которой я строил библиотеку.

В результате у меня есть 64-разрядная динамически связанная общая библиотека x86_64, которая работает только на 64-битных системах.

Я собираюсь связать эту библиотеку с моим устройством Android с помощью инструмента JNA.

Каким образом можно скомпилировать мою библиотеку C++ для архитектуры Android и JNA.

+0

32 бит Я бы сказал – Hayt

ответ

1

Вы должны использовать Android NDK.

В зависимости от целевой архитектуры вы должны выбрать подходящую инструментальную цепочку/кросс-компилятор, например. ARM, MIPS или x86.

Смотрите также Getting Started with the NDK


JNI или ЮНА не имеют ничего общего с тем, как построена библиотека. Вы должны создать библиотеку для своей целевой архитектуры, чтобы ее можно было использовать на вашем телефоне или планшете.

Чтобы получить доступ к этой библиотеке с Java, вы можете использовать либо JNI, либо JNA.

С JNI вы должны реализовать код клея в C/C++. С JNA с другой стороны вы делаете более или менее то же самое, но используете существующую библиотеку (libffi) и реализуете код клея в Java. Это выполняется динамически во время выполнения и может быть рассмотрено что-то вроде отражения для библиотеки.

+0

Я вижу. Это повлечет за собой обертывание моих функций cpp с помощью JNI да? –

+0

Я надеялся использовать JNA, а не –

+0

Большое вам спасибо. Это делает вещи более ясными. –