Content Provider vs SharedUserId vs Global Process 用于跨应用程序共享数据

安卓开发者

我找到了三种跨应用程序共享数据的方法。

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

$ provider = function()vs函数provider()

来自分类Dev

Shell Vs Process.start用于执行外部应用程序

来自分类Dev

process.start冻结我的应用程序(VS 2013)

来自分类Dev

#define vs const global

来自分类Dev

吉斯:@Provider vs toProvider绑定

来自分类Dev

PHP中的global vs $ GLOBALS

来自分类Dev

PHP中的global vs $ GLOBALS

来自分类Dev

服务+ android:process“ vs” IntentService

来自分类Dev

Hazelcast vs Redis(或RedisLabs)用于NodeJS应用程序

来自分类Dev

@content VS常规附加规则

来自分类Dev

LogicalCallContext在控制台应用程序中跨等待流,但不跨VS UnitTest

来自分类Dev

rbenv ruby在Rails Global vs Local vs Shell上

来自分类Dev

JavaScript性能:属性的访问时间-“ this” vs“ global object” vs“ variable”

来自分类Dev

具有相同sharedUserId的应用程序之间的SharedPreference

来自分类Dev

具有相同sharedUserId的应用程序之间的SharedPreference

来自分类Dev

Implementing a global LruCache vs many local LruCaches

来自分类Dev

GLOBAL vs全局关键字

来自分类Dev

客户端应用程序vs Windows服务vs?

来自分类Dev

客户端应用程序vs Windows服务vs?

来自分类Dev

移动应用程序开发:原生 vs 混合 vs PWA

来自分类Dev

LOB应用程序与Aurelia VS WPF

来自分类Dev

VS Code应用程序无法打开

来自分类Dev

对标Cordova vs Titanium应用程序

来自分类Dev

移动应用程序:Localfiles VS LocalDB?

来自分类Dev

异步函数vs child_process

来自分类Dev

Ruby on Rails:提供vs content_for

来自分类Dev

备份Sitecore 7应用程序。数据库备份vs序列化vs安装程序包

来自分类Dev

PNG vs JPG,用于在Android应用程序中显示图片(而非图标)

来自分类Dev

QWidget vs Qt Quick适用于手机应用程序开发

Related 相关文章

热门标签

归档