Различие между статическими и общими библиотеками в NDK Android?

Я плохо знаком с NDK Android, и я не понимаю различий между статическими и общими библиотеками. Каковы они, и когда я выбрал бы, каждый заменяет другой вводом с клавиатуры?

36
задан stkent 4 August 2017 в 19:57
поделиться

1 ответ

Термин "общая библиотека" не совсем подходит для NDK Android, потому что во многих случаях библиотеки .so на самом деле не являются общими для приложений. Лучше классифицировать библиотеки, создаваемые NDK, как статические и динамические.

Каждое приложение Android - это Java-приложение, и единственная точка входа для кода NDK - это загрузка его как динамической библиотеки и вызов ее через JNI.

Статические библиотеки - это архивы скомпилированных объектных файлов. Они включаются в другие библиотеки во время сборки. Неиспользуемые части кода из статических библиотек удаляются NDK для уменьшения общего размера.

Динамические библиотеки загружаются во время выполнения из отдельных файлов. Они могут содержать статические библиотеки, от которых они зависят, или загружать больше динамических библиотек.

Таким образом, для разработки Android вам нужна хотя бы одна разделяемая библиотека, которая будет вызываться из Java-кода и связываться с зависимыми статическими библиотеками.

61
ответ дан 27 November 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: