实际共享应用程序组件是如何完成的?
这完全取决于您认为“应用程序组件”是什么,以及您认为“共享”是什么。
这就是 Android 开发指南所说的
这是文档中相当糟糕的部分。这是我的写法:
Android 的一个核心特性是一个应用程序可以使用其他应用程序的组件(例如,活动、服务)(只要这些应用程序允许)。例如,如果您的应用程序需要显示联系人列表,而另一个应用程序开发了一个活动来执行此操作并使其可供其他人使用,则您可以调用该活动来完成工作,而不是开发自己的活动。您的应用程序未包含其他应用程序的代码。相反,它只是在需要时启动其他应用程序的那个部分。
获取此类“私人应用程序”信息以联系该应用程序的开发人员的唯一方法是什么?
开发人员要么打算让您与他们集成,要么他们不打算。如果是,他们应该记录如何做到这一点(例如,用于触发其代码的Intent
格式)。startActivity()
如果他们没有记录此类集成点,您当然可以要求开发人员添加一些。然而,随机射击Intents
他们希望得到回应,即使它暂时有效,也比脚本小子策略好不了多少——这些开发人员在升级他们的应用程序时没有义务确保你的代码正常工作。
有关应用程序操作的数据的信息也是私有的吗?
我不知道“有关应用程序操作的数据的信息”是什么意思。默认情况下,应用程序管理的数据是私有的。同样,应用程序开发人员可以提供数据集成点(例如,内容提供者、远程服务 API)——有些可以,有些不可以。
吸引我的一件事是巨大的互操作性的印象
与其他一些移动平台相比,Android 提供了更大的互操作性潜力。然而,使用这种潜力需要互操作者之间的同意。你不能仅仅因为你喜欢就单方面决定侵入另一个应用程序的数据库或调用私人活动。
Should more Android developers offer more integration points? In the abstract, sure. However, bear in mind that this adds support costs (e.g., answering integration questions) and limits coding flexibility (e.g., need to maintain a stable API for those doing the integrating). Developers cannot be blamed if they do not wish to incur all that.