1

该声明的含义及其含义是什么:

对象是跨进程引用计数的。

它来自附加说明部分中的 android进程间文档

它是否与垃圾收集有关(不是每个进程都收集自己的对象)?

4

1 回答 1

1

我阅读了@mparaz 给我的链接,其中谷歌框架工程师 Diane Hackborn 讨论了 Android Binder。

这是我从链接中了解到的:

Android Binder 是另一种 In-Kernel IPC 方法,它非常紧密地集成到 Android 核心的各个方面(从 UI 到系统的基础级别)。它将进程管理的各个方面与进程间通信相结合。它被编写为绕过/重新实现一些 linux 进程控制机制的内核模块。

据我所知,如果您使用这种类型的进程间通信,即使您的应用程序关闭,您也永远无法确定您的对象是否会被垃圾收集,除非您正在与之通信的应用程序也关闭并且该应用程序没有以相同的方式与任何其他应用程序进行通信(除非它是你的,否则你永远无法确定)。

所以基本上,在我看来,如果你以这种方式传递它们,你不应该依赖于你的对象的垃圾收集。除此之外,可以正常进行。

编辑 1:在相关说明中,有时这种 IPC 方法似乎必须手动关闭(而不是放弃),否则它可能会使您的应用程序崩溃(请参阅调用您的 LicenseChecker 的 onDestroy() 方法以关闭 IPC 连接)。

于 2012-08-21T08:02:33.313 回答