我想把不同编译的本地库包(4个不同的包,有armv6,armv6+vfp,armv7,armv7+neon)放在Play Store上。
然后,我想发布一个主要的应用程序包,可以使用这4个包之一。它将在运行时检测cpu类型,并通知用户下载名为MyAppLibPackARMV6vfp的应用程序。之后,如果用户试图在主应用程序中使用库,主应用程序将检查是否安装了MyAppLibPackARMV6vfp,如果安装了,则它(主应用程序)必须能够从该远程软件包加载本机库。
这一定是可能的,因为我们在Play Store上看到了类似的包,比如:https://play.google.com/store/apps/details?id=com.mxtech.ffmpeg.v6_vfp
我如何做同样的事情;允许第三方(由我制作)应用程序使用位于另一个应用程序(由我制作)上的库?
发布于 2013-08-14 15:37:31
只是为了发表我对如何实现这一目标的看法。这可能不是最标准的方式,但它应该可以工作。
以MX播放器插件为例,主程序为MXPlayer.apk,附加编解码器为MXPlugin.apk
因为这两个都是由相同的供应商签名的,所以它们可以使用相同的UID。因此,MXPlugin可以将数据复制到/ xxxCodec.so /xxxCodec.so/com.example.mxplayer/libs/,然后MXPlayer可以加载新的编解码器。
这不是很优雅。以你的情况为例。如果我是您,我会通过一个服务接口公开主程序中的所有API(并由相同的签名保护)。所有其他的apk都将绑定到这个主服务,并调用本机库中的实现。
https://stackoverflow.com/questions/18225472
复制相似问题