使用Android Binder类有什么意义?

时间:2014-03-28 10:57:03

标签: java android multithreading android-service android-service-binding

documentation说:

  

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

但是,假设服务在与客户端相同的进程中运行,则可以使用任何线程安全的结构(如ConcurrentLinkedQueue)来交换数据。

1 个答案:

答案 0 :(得分:0)

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

  

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

     

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

有关详细信息,请查看此处:Android Binder. Android Interprocess Communication