我刚读了一篇非常有趣的文章,讲述了当内存不足时android(以及我假设其他操作系统)的工作方式。这在理论上是如何完成的?它与Java的对象序列化类似吗?
答案 0 :(得分:1)
总之:是的。
再说一遍,那种。你必须手动处理更多的手动而不是我想要的。从本质上讲,所有Android为您提供的是一个哈希来推送一些可串行化的对象,由字符串引用,保证在应用程序关闭时是安全的。因此,每当您想要在关闭应用程序时保留某些内容时,您有责任更新此已保存的状态哈希(并让Android知道您已经这样做了)。这包括表单字段中的半完成文本输入等内容。这意味着你有很多东西要听。
然后,Android将调用Activity中的一个特定钩子,该钩子在回收应用程序时处理恢复状态,并且您需要这样做。对于所有回收都不会发生这种情况 - 您的应用程序存在各种状态/存在。棘手的部分是,因为你无论如何都要做这种繁琐的工作,Android会变得懒惰,并将屏幕旋转等内容实现为应用程序的完全回收。
一旦你习惯了它,我听起来比它真的更糟糕;在Java和移动计算的范围内解决问题确实不是一个坏方法。
当然,这是对Android的回应。其他(桌面)操作系统依赖虚拟内存和分页来处理内存限制。