Android 安卓IPC的参考

Android 安卓IPC的参考,android,ipc,Android,Ipc,我正在使用Android框架定制ROM。 出于某种原因,我需要通过引用将对象发送到另一个应用程序,而不是通过克隆数据。不需要AIDL或intent,因为他们需要通过Parcelable或Json复制数据 像这样: App1 void func1(TextView t) { App2.func2(t); } App2 void func2(TextView t) { String s=t.toString(); } 我猜发送引用是可能的,因为我听说JVM中没有进程的概念,所以没有进

我正在使用Android框架定制ROM。 出于某种原因,我需要通过引用将对象发送到另一个应用程序,而不是通过克隆数据。不需要AIDL或intent,因为他们需要通过Parcelable或Json复制数据

像这样:

App1
void func1(TextView t)
{
   App2.func2(t);
}

App2
void func2(TextView t)
{
   String s=t.toString();
}

我猜发送引用是可能的,因为我听说JVM中没有进程的概念,所以没有进程的边界。可能吗?如果不是,可以在JNI下用C++共享内存来完成吗?< /P> < P> Android有自己的虚拟机Dalvik,而JVM的相反,Dalvik在DalvikVM(进程)的不同实例中运行不同的应用程序。因此,在Android中有几种IPC机制(Binder就是其中之一)

在您的情况下,您需要使用Ashmem。这是一种共享内存,但专门针对Android。我在这个领域只有理论知识,从未尝试过自己的领域


是一篇如何创建共享内存区域的文章。

不,你不能有相同的引用,唯一的方法是通过各种IPC机制复制对象,但是引用会有所不同,因为这是两个无法共享内存的独立进程。

是ashmem包装器,使用反射,您可以得到一个文件描述符,可以在进程之间传递。要发送文件描述符,可以使用Binder。谢谢,但我最近听说AIDL在内部使用内存文件/共享内存,因此现在无需为性能而烦恼共享内存。也许在新版本中,但对于姜饼,活页夹不使用共享内存。它只是将数据从一个进程复制到另一个进程。