0

文档说:

如果您的服务仅由本地应用程序使用并且不需要跨进程工作,那么您可以实现自己的 Binder 类,为您的客户端提供对服务中公共方法的直接访问。

但鉴于服务与客户端在同一进程中运行,因此可以使用任何线程安全结构(如 ConcurrentLinkedQueue)交换数据。

4

1 回答 1

0

在 Android Binder 类的使用中,可能的消息传递或数据交换解决方案没有任何意义,但在提供更高可用性和安全级别的通用 Android 架构中,没有它可以保证:

从 Android 应用程序程序员的角度来看,最重要的改进是远程对象上的方法可以像调用本地对象方法一样被调用。这是通过同步方法调用实现的。因此,调用客户端进程在服务器进程应答期间被阻塞。对于它的优势,客户端不需要为来自客户端的异步返回消息提供威胁方法。

意图附带的另一个功能是意图过滤器。这是服务或应用程序的声明,其意图由系统转发到此服务或应用程序。但它并不能保证所有意图的安全性,因为意图过滤器可以被显式意图绕过。最后,安全性依赖于对 PID 和 UID 的检查,如上所述。

有关更多详细信息,请参见此处:Android 活页夹。Android 进程间通信

于 2014-03-28T13:56:27.620 回答