当调用 putExtra() 时内存方面会发生什么?

what happens memory-wise when putExtra() is called?

在我的 android 应用程序中,我有一个很大的对象 ArrayList(超过 100 个),我通过意图将这个 ArrayList 从 activity 传递到 activity,使用putExtra(key,value) 函数。当我做这样的事情时,内存方面到底发生了什么,ArrayList 是否被复制,所以现在它占用的内存是最初所需内存的两倍?或者它只是被引用所以 space 保持不变?

当您超过 ArrayList 时,您就是 serializing/parceling。这叫做marshalling。在另一端,您正在读取这些包裹并进行解组。它所做的基本上是将您的 ArrayList 转换为您在另一端阅读的流,并制作原件的 COPY