Android LiveData<List<>> vs. List<> 内存大小比较?

Android LiveData<List<>> vs. List<> memory size comparison?

所以我一直在更深入地阅读 LiveData 并且我的好奇心被激起了。 LiveData 可以包含任何内容的列表,但就内存分配而言,它与常规 List 相比如何。我知道这通常取决于存储的内容。如果只有 1 个浮点数和 100 个整数,List<int> 可以大于 List<float>

但是,例如,假设我有一个 LiveData<List<int>> 的 10 phone 个号码,以及一个 List<int> 的相同的 phone 个号码。 LiveData 会占用更多内存吗?

我知道 LiveData 有一个特定的目的来保持 UI 更新(我可能没有准确表达)并且需要一个 Observer,而一个普通的 List 更易于使用,但无法满足 LiveData 的需求。

或者现在大多数设备是否只是有足够的内存,这基本上是一个有争议的问题?

Would the LiveData take up more memory?

对于相同的基础列表,是的。它总是会占用一些 space 超出它包含的数据。查看源代码以了解它实际添加到包含的数据对象之上的内容。

你可能想多了。如果您遇到 运行 内存不足的问题,几乎可以肯定不是因为任何 LiveData。您的列表本身可能是更大的问题,核心 Android 运行时的其他部分将使您的 LiveData 及其内容的大小相形见绌。