我正在使用定制ROM的Android框架。出于某种原因,我需要通过引用将对象发送到另一个应用程序,而不是通过克隆数据。我不想要AIDL或intent,因为他们需要通过Parcelable或Json复制数据。
如下所示:
App1
void func1(TextView t)
{
App2.func2(t);
}
App2
void func2(TextView t)
{
String s=t.toString();
}我猜发送引用是可能的,因为我听说JVM中没有进程的概念,所以没有进程的边界。有可能吗?如果不能,是否可以在具有C++共享内存的JNI下完成?
发布于 2012-07-12 04:40:54
Android有自己的虚拟机Dalvik,与JVM相反,Dalvik在不同的DalvikVM (进程)实例中运行不同的应用程序。因此,在Android中有几种IPC机制(绑定器是其中之一)。
在您的情况下,您需要使用Ashmem。这是一种共享内存,但专门针对Android。我在这个领域只有理论知识,从来没有自己尝试过。
Here是一篇如何创建共享内存区的文章。
发布于 2015-06-30 18:19:55
不,你不能有相同的引用,唯一的方法是通过不同的IPC机制复制对象,但引用将是不同的,因为这是两个独立的进程,不能共享内存。
https://stackoverflow.com/questions/11441048
复制相似问题