跨两个应用程序共享本机库

时间:2012-03-07 07:29:47

标签: android service

目前在我的Android系统中,我开发了一个本地库来进行通信 通过linux驱动程序连接媒体设备,我们从一个访问它 apk应用程序通过Java本机接口。这一直很好,直到 现在

但我们还有另一个需要访问同一本机库的应用程序 与第一个应用程序并行。正如预期的那样,因为数据不同 对于新应用程序中链接的本机库,此方法不是 工作

为了颠覆这一点,我们写了一个将要链接的新服务/应用程序 使用本机库和其他应用程序使用binder调用来访问API 这个新的服务/应用程序。

我的问题是:

  1. 这种新方法可行吗?有人可以用更好的方法帮助我。
  2. 如果是,那么我们还需要返回API中的缓冲区和一些API 回调。可以使用binder界面处理这些类型的函数吗?
  3. 谢谢, Ashutosh说

2 个答案:

答案 0 :(得分:0)

在jar中构建一个外部库,提供更高级别的API,然后访问本机库。然后使用此jar库作为任何其他lib。您可能必须检查如何将.so文件放入jar文件中以获得单个库文件。

答案 1 :(得分:0)

我认为服务方法正是opencv实现的目的......具体来说,OpenCV在thr app store中有一位经理。您可以开发一个实现BaseLoaderCallback的应用程序,该应用程序从该管理器获取.so库。在幕后,这使用Service,ServiveConnection和aidl来获取库...如果内存对我有用。

...更新

现在我考虑一下,我认为OpenCV管理器可能只是将路径传递给库,然后可以使用System.load命令加载库,该命令接受库路径。