如何在Android中创建共享库

Rob*_*bin 12 deployment android shared

我有一个库,比如LIB,它公开了很多API和类供应用程序开发人员使用.

如果有多个应用程序在手机上使用LIB,我只想创建并运行一个LIB实例.它有点类似于Android平台服务,如LocationManager,SensorManager,PackageManager等.

具体而言,有两个问题需要解决: -

  1. 如何确保只有一个LIB实例?
  2. 如何部署LIB(单独的apk /捆绑使用它的每个应用程序,但只有其中一个在任何时间创建库实例)等.
  3. 是否有任何其他方式(除了服务/ AIDL)以确保只有一个LIB实例运行,而不管使用它的应用程序的数量.

Rob*_*bin 6

好的,花了时间在这上面,这里是我的问题的答案: -

问:如何确保只有一个LIB实例? - 仅通过服务公开LIB功能.

问:如何部署LIB(与使用它的每个应用程序分开apk /捆绑,但只有其中一个在任何时间点创建库实例)等 -

对于服务,会有一个单独的apk(或者可能与服务客户端应用程序捆绑在一起),

问:是否有任何其他方式(除了服务/ AIDL)以确保只有一个LIB实例运行,而不管使用它的应用程序数量.

是的,这就像LIB与每个应用程序捆绑在一起.但是,这需要在使用意图的库之间建立强大的通信协议,以便其中一个充当主设备,并与其他库共享数据.实际上,只有在没有其他实例运行的情况下,打包在apk中的LIB才会启动它的引擎.实现此目的的一种方式是使用广播并保持安全性,权限可以与所涉及的广播动作相关联.