7得票2回答
如何检查两个Android Binder代理对象是否相等?

我有一个关于Android Binder的问题。如果我理解正确,Binder可以在进程之间传递。在服务端,有一个Binder对象(原始对象)。在客户端(另一个进程中),有一个处理AIDL数据编组的BinderProxy对象。 我的问题是-如何检查两个BinderProxy对象是否相等?相等指...

9得票2回答
安卓服务能够提供两个接口进行通信吗?

我有一个通过AIDL与其他服务通信的服务。我希望该服务能够被应用程序中的活动绑定。该服务是否可以定义两个绑定器/接口?我尝试使用Messenger与活动通信,并重写“onBind”方法,以便根据其获取的意图返回不同的绑定器(一个用于其他服务,一个用于活动)。 但是当使用相同绑定器的活动从服务...

7得票1回答
在AOSP中,ServiceManager实现在哪里?

在IServiceManager.cpp文件中,我看到了BnServiceManager::onTransact函数的定义。 在该函数内部,有一个对"addService", "listServices"等的调用。 我找不到这些函数的实现(它们是在IServiceManager下声明的)。...

7得票1回答
快速IPC:使用Messengers或AIDL

我正在尝试在Android中创建一个程序,能够快速地与远程服务进行通信(约40,000次/秒),然而所有的Android IPC似乎都无法完成这个任务。我的第一次尝试是使用标准的Messenger系统,但它最多只能做到每秒约2,000次,并且不时出现间歇性延迟。 MainActivity(...

76得票7回答
安卓操作系统中有哪些IPC机制可用?

请问有哪些在安卓系统中存在的进程间通信(IPC)机制? 据我所知包括: 意图(Intents) 绑定器(Binders)

17得票1回答
远程服务拒绝绑定权限

我有一个远程服务,外部应用程序可以绑定到它上面。在某些情况下,我可能会拒绝绑定请求。根据文档, 返回与服务通信的通道。如果客户端无法绑定到服务,则可以返回null。 @Override public IBinder onBind(final Intent intent) { r...

18得票1回答
使用ParcelFileDescriptor.createPipe()将InputStream传输到另一个服务(跨进程边界)失败,显示"EBADF (Bad file number)"。

我希望使用ParcelFileDescriptor.createPipe()方法创建一个管道,通过流到流的拷贝线程和表示管道读取端的ParcelFileDescriptor将一个Android Service中的InputStream传送给另一个运行在不同进程中的Service,并通过Bind...

10得票1回答
使用Binder从本地cpp应用程序在Intent中打包捆绑数据

我正试图从本地cpp代码调用一个意图。基本上,据我所了解,我必须组合一个Parcel,以匹配frameworks/base/core/java/android/app/ActivityManagerNative.java;case BROADCAST_INTENT_TRANSACTION中的确...

14得票3回答
如何创建一个Android本地服务并使用Binder进行通信?

我的基本任务是在Android中创建一个本地服务,然后编写一个简单的本地程序来测试它。假设我想编写一个简单的服务,用于返回两个整数的和。我必须使用绑定器从程序中访问它,我已经尝试了Google搜索,但我找不到精确的例子。我需要知道如何创建本地服务并在程序中查找它,如果需要还要在Java中。

26得票1回答
使用Android原生Binder发送自定义对象

我只能找到关于Java的Parcelable示例。我的目标是创建一个简单的服务和客户端,使用Binder接收和发送序列化的自定义对象,而且这是使用本地C++(而不是NDK)。MyClass + std::string + enum + int + bool