Intereting Posts
Android M – проверить разрешение времени выполнения – как определить, проверен ли пользователь «Никогда не спрашивать снова»? Как узнать размер файла перед его загрузкой? Прокрутите изображение больше экрана и остановитесь на его границе на Android Метод getResourceId для TypedArray Youtube API v3 поиск видео, получение заголовка и URL-адреса Как нажимать элементы Action Bar при тестировании на Android Espresso? Как получить данные об авариях из моего приложения Android? Android Несколько файлов dex определяют Lcom / google / android / gms / common / api / zza Android Реализация чата Bubble в ListView Аппаратное ускорение не включено Изменение цвета фона текущего элемента списка в адаптере getView SetPage (Xamarin.Forms.Page) – устаревшая ошибка – Android Принудительное приложение для обновления, когда новая версия приложения доступна в магазине воспроизведения Android. Проблема с элементом списка ListView в Android с фоном при прокрутке Показать сложный тост из BroadcastReceiver

Разница между статическими и разделяемыми библиотеками в NDK от Android?

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

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

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

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

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

Итак, что вам действительно нужно для разработки Android – это, по крайней мере, одна общая библиотека, которая будет вызываться из Java-кода и связана с ее зависимостями в качестве статических библиотек.

Собственные общие библиотеки: NDK создает эти библиотеки или .so-файлы из собственного исходного кода. Родные статические библиотеки: NDK также может создавать статические библиотеки или файлы .a, которые вы можете связать с другими библиотеками.

Это согласно документации NDK