我找到了三种跨应用程序共享数据的方法。
1.内容提供者
2. SharedUserId - 当您为多个应用程序声明相同的共享用户 ID 时,它们可以访问彼此的资源(数据字段、视图等)。提供的应用程序使用相同的证书签名。
3.全局进程 -通过使用android:process属性和以小写字母开头的命名进程将一个应用程序的组件放在单独的进程中,并将另一个应用程序的另一个组件放在与第一个应用程序的单独进程同名的单独进程中。现在这些组件可以共享数据。
我很困惑何时使用什么或哪个更有效?
我找到了三种跨应用程序共享数据的方法。
#2 和#3 是相同的,因为#3(共享进程)需要#2 ( sharedUserId
)。
您还错过了所有其他形式的标准 Android IPC,包括:
我很困惑何时使用什么
普通应用程序开发人员应该使用 #1 ( ContentProvider
) 或我上面概述的其他标准 Android IPC 机制之一。您无法控制用户何时更新应用程序,并且使用正式的 IPC 会强制在应用程序之间进行明确分离,迫使您考虑 API 合同、API 版本控制和相关问题等问题。
sharedUserId
共享流程确实适用于设备制造商,其中应用程序是预先安装的,然后通过固件更新统一更新。就个人而言,我建议设备制造商在大多数情况下也使用标准 IPC。比如App A直接修改App B的文件,App B是怎么发现的?如果 App B 然后覆盖 App A 的更改,因为 App B 不知道这些更改怎么办?在计算机编程的许多其他领域,我们已经摆脱了来自多个应用程序的多个进程直接处理彼此文件的情况。
哪个更有效率?
在这种情况下,效率应该不是问题,因为您应该很少使用这些技术中的任何一种。如果您有两个需要频繁通信的应用程序,那么您实际上只有一个应用程序,您应该以这种方式实现它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句