Где загрузить нативную библиотеку в Android, если это требуется несколькими активами и службами - PullRequest
0 голосов
/ 22 февраля 2019

Некоторые из моих классов Kotlin реализованы в собственной библиотеке (Rust использует jni).Эти классы используются в большинстве активаций и одной службой синхронизации (вторая служба может появиться позже).

Каково рекомендуемое решение для загрузки этой библиотеки и обработки ошибок загрузки (например, отправка отчета об ошибке, еслизагрузка не удалась)?

Базовые примеры загружают библиотеку в MainActivity.onCreate.Или часто я вижу статический блок внутри класса MainActivity.Другой метод может загружать библиотеку в производный класс из Application.Но я не уверен, существует ли только один Application экземпляр для всех действий и служб или один экземпляр `` Application``` создан для каждой службы, а другой - для всех действий.

Так что мойвопрос: куда поставить System.loadLibrary()?

1 Ответ

0 голосов
/ 22 февраля 2019

Да, приложение является единым целым для всего приложения Android.Но вы не должны беспокоиться, LoadLibrary () ничего не делает, если библиотека была загружена ранее.Поэтому рекомендуется добавлять LoadLibrary в статические блоки всех классов, зависящих от этой библиотеки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...