В NativeScript, фреймворке для разработки мобильных приложений на JavaScript или TypeScript, можно использовать библиотеки с расширением .so (shared object) для Android.
Для использования таких библиотек необходимо выполнить несколько шагов:
Шаг 1: Разместите библиотеку .so в папке libs вашего проекта. Обычно это папка app/App_Resources/Android/src/main/jniLibs/. Если папки jniLibs еще нету, вы можете создать ее вручную. Вы будете выбирать библиотеку с учетом архитектуры устройства, для которого вы хотите собрать приложение (например, armeabi-v7a, arm64-v8a, x86, x86_64 и т. д.).
Шаг 2: Обновите файл app/App_Resources/Android/src/main/AndroidManifest.xml, чтобы загрузить библиотеку. Для этого добавьте код следующего вида:
<application android:usesCleartextTraffic="true"> <meta-data android:name="com.tns.NativeScriptApplication" android:value="--expose_so_libs_paths --runtime_version 6.5.0" /> ... </application>
Обратите внимание на тег <meta-data>
с атрибутами android:name и android:value. Атрибут android:name должен быть именно таким, как указан выше. Атрибут android:value должен содержать в себе параметры --expose_so_libs_paths
и --runtime_version
, где указывается версия NativeScript, например, 6.5.0.
Шаг 3: В JavaScript-коде вам нужно будет указать путь к вашей .so библиотеке и импортировать ее. Для этого можете использовать примерно следующий код:
declare const org: any; // Объявляем переменную org, чтобы использовать внешние библиотеки const myLibrary = require("libName"); // Подключаем библиотеку // Используем библиотеку function myFunction() { const result = org.myLibrary.SampleFunction(); // Вызываем функцию из библиотеки console.log(result); // Выводим результат в консоль }
Обратите внимание на конструкцию org.myLibrary.SampleFunction()
. Здесь вы используете путь к вашей библиотеке и вызываете нужную функцию.
Это основные шаги для использования .so зависимостей в NativeScript приложении для Android. Не забудьте также обновить вашу npm-зависимость libName в package.json.
Удачи в разработке!