Android AIDL/Binder 接口对象是线程安全的吗?

zer*_*lus 5 android

如果我有一个表示远程接口(到 Android 服务或到远程客户端的回调接口)的 Binder 对象,那么当我通过该对象从多个线程发送 IPC 时是否需要显式同步,或者由底层 Android 负责处理成分?

sat*_*ine 1

在Android中调用Binder RPC方法是线程安全的,您可以从多个线程发出调用而无需同步。

在接收端(假设 Service 与通常一样位于不同的进程中),无论调用方如何调用它,您都会从 Binder 线程池中获得调用。这意味着您的服务可能会同时运行多个调用,因此请务必小心。

Android 文档中的更多信息:进程和线程