Совместное использование собственной библиотеки в двух приложениях - PullRequest
5 голосов
/ 07 марта 2012

В настоящее время в моей системе Android я разработал собственную библиотеку для общения с подключенным мультимедийным устройством через драйвер Linux, и мы получаем к нему доступ из приложение apk через нативный интерфейс Java. Это работало нормально до Теперь.

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

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

Мой вопрос:

  1. Возможен ли этот новый подход? Может ли кто-нибудь помочь мне с лучшим подходом.
  2. Если да, то нам также нужно возвращать буферы в API, и некоторые из API Обратные вызовы. Можно ли обрабатывать эти типы функций с помощью интерфейса связующего?

Спасибо, Ashutosh

Ответы [ 2 ]

0 голосов
/ 20 мая 2017

Я считаю, что сервисный подход - это именно то, как opencv достигает этого ... в частности, у OpenCV есть менеджер в магазине приложений. Вы можете разработать приложение, реализующее BaseLoaderCallback, которое получает библиотеку .so от этого менеджера. За кулисами это использует Service, ServiveConnection и aidl, чтобы получить библиотеку ... если память мне не изменяет.

Обновление ...

Теперь, когда я думаю об этом, я думаю, что менеджер OpenCV может просто передавать путь к библиотеке, который затем может быть загружен командой System.load, которая принимает путь к библиотеке.

0 голосов
/ 07 марта 2012

Создайте внешнюю библиотеку в банке, которая предоставляет API более высокого уровня, который, в свою очередь, обращается к собственной библиотеке.Затем используйте эту библиотеку jar как любую другую библиотеку.Возможно, вам придется проверить, как поместить файл .so в файл jar, чтобы иметь один файл библиотеки.

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