2012-03-07 114 views
5

目前在我的Android系统中,我开发了一个本地库,用于通过Linux驱动程序与连接的媒体设备通信 ,我们通过Java本地接口从 apk应用程序访问它。这一直工作正常,直到 现在。在两个应用程序之间共享本地库

但是我们也有另一个应用程序需要与第一个应用程序并行访问相同的本机库 。正如所料,由于新应用程序中链接的本机库的数据部分不同 ,因此此方法不是 的工作。

颠覆这一点,我们虽然写一个新的服务/应用程序,它会与本地库和其他应用程序链接 使用粘合剂调用 这项新服务/应用程序访问的API。

我的问题是:

  1. 这是新的方法可行吗?有人能帮助我更好的方法。
  2. 如果是的话,那么我们也需要返回API中的缓冲区,并且一些API是回调函数的 。可以使用活页夹界面处理这些类型的功能吗?

谢谢, Ashutosh说

回答

0

在提供更高级别的API,它反过来访问本地库罐子建立一个外部库。然后使用这个jar库作为任何其他库。您可能需要检查如何将.so文件放入jar文件以获取单个库文件。

+0

.so文件可以在两个以上的应用程序之间共享吗?例如,如何让任意数量的应用程序共享一个通用的.so文件而不使用外部存储?你能在答案中提供更多细节吗? – trusktr 2013-01-12 19:28:39

+0

这是值得一个新的问题。发表它!现在:不,只是将.so文件放在设备上应用程序的数据文件夹中。 – Bondax 2013-01-14 10:31:23

0

我相信这种服务方式正是opencv如何实现这一目标......特别是,OpenCV在thr app store中有一个管理器。您可以开发一个实现BaseLoaderCallback的应用程序,该应用程序从该管理器获取.so库。在幕后,它使用Service,ServiveConnection和aidl来获取库...如果内存为我服务的话。

更新...

现在回想起来,我觉得OpenCV的经理可能只是路过的路径到库中,然后可以装入System.load命令,它接受库路径。

相关问题