Могу ли я создать статическую библиотеку, основным компонентом которой является заголовочный файл (.h) с помощью NDK?

Я хочу преобразовать свой код cpp для статической библиотеки в библиотеку Android. Для этого я пытаюсь использовать NDK. Но я читал документацию NDK, и в ней говорилось, что для сборки "Android.mk" можно использовать только исходный код. Мой вопрос: «Есть ли способ создать статическую библиотеку для системы Android с моей библиотекой cpp?» Верхний модуль моей библиотеки cpp представляет собой заголовочный файл, и его можно собрать в системе Windows как «.lib».

Спасибо!


person Imjae    schedule 28.12.2013    source источник


Ответы (1)


Ваша библиотека cpp должна быть собрана с помощью набора инструментов NDK как "libyourname.a" для начала. Для этого вам не нужен Android.mk, хотя во многих случаях получение Android.mk, соответствующего стандартам, тривиально и делает жизнь разработчика счастливее в долгосрочной перспективе (см., например, github).

Следующим шагом должна быть подготовка динамической библиотеки оболочки JNI (общий объект, .so), которую можно загрузить из вашего приложения Java. Этот "libyourname_jni.so", вероятно, будет иметь свой собственный отдельный файл Android.mk. Ну, Java не обязателен: вы можете использовать NativeActivity или, может быть, какие-то альтернативные фреймворки.

Я предлагаю следующее чтение, чтобы понять весь процесс: http://thesoftwarerogue.blogspot.co.il/2010/05/porting-of-libcurl-to-android-os-using.html

person Alex Cohn    schedule 28.12.2013