使用多个APK作为Android的“插件”

时间:2012-09-18 07:38:30

标签: android

我曾尝试对此话题进行研究,但未找到我认为“正确”的答案。 SO上有几个类似的帖子,但和大多数人一样,我认为我的问题不同...... :-)。提前感谢您的任何帮助。

我正在开发一个内置培训模块的应用程序。并非所有用户都需要始终在其设备上提供所有培训模块。此外,这些模块将占用大量资源,这就是为什么我不想在基础应用程序中包含所有这些模块的原因。我的想法是提供额外的APK包(具有相同的签名),以便这些模块可以自由交互。问题是:

  1. 我已经在某处读过(但是再次找不到链接),如果不同的APK使用相同的签名,他们可以互相交谈。如果不是这样,请告诉我。
  2. 我如何能够在这些APK之间共享代码?我已阅读有关共享资源的信息,但现在确定代码共享将如何工作。
  3. 如果这不是解决这个问题的最佳方法,我欢迎采用不同方法的任何方向。
  4. 我仍然处于应用程序这个特定部分的研究模式,因此,我对我可以采用的设计方法非常灵活。

    ...谢谢

1 个答案:

答案 0 :(得分:0)

  

我已经在某个地方读过(但是再也找不到链接)如果不同的APK使用相同的签名,他们可以互相交谈。如果不是这样,请告诉我。

任何应用都可以“互相交谈”。使用相同的签名密钥签名两个或多个允许您定义自定义签名级权限,这意味着您的应用程序可以“相互通信”,而其他开发人员的应用程序无法与您通过同样的意思。

  

我如何能够在这些APK之间共享代码?

理想情况下,你不会。当然欢迎您有一个应用程序调用另一个应用程序公开的API:

  • 开始活动
  • 启动或绑定服务
  • 发送广播
  • 访问内容提供商

这些API可以通过上面提到的自定义签名级权限进行保护,因此它们只适用于您的应用系列,而不适用于任意应用。