所有
我想在我的android上释放ram用于数据密集型操作,并且还能够在用户想要时释放ram。我想做的第一件事就是运行system.gc()。但是,这并不能保证垃圾收集器能够正常工作。有关如何立即保证ram在调用代码时被释放的任何建议。此外,当您单击小部件时释放RAM的应用程序如何完成此任务?
我想更好的方法是:如何手动释放内存,如Android操作系统?
THX
答案 0 :(得分:3)
您不必这样做。如果您需要的数量超过现有数量,Android会杀死较低优先级的应用以释放内存。
答案 1 :(得分:1)
我的理解是Android上的理论是当另一个具有更高优先级的进程(即当前前台进程)需要更多内存时,正在运行的应用程序应该通过回调机制放弃内存;此外,如果内存需求进一步增加,操作系统将开始杀死其他应用程序。
因此,如果您希望应用程序能够使用基本上所有系统的内存,您只需要确保它保持在前台或使用其他机制来确保其内存需求比其他内存更高的优先级要求(不幸的是,我无法说明后一部分究竟是什么样的)。
您可以或不应该手动释放特定应用程序之外的内存。操作系统正在做正确的事情:因为需要内存,它会告诉应用程序“删除所有非必要数据”,然后如果需要更多内存,它会告诉它们丢失。任何释放内存的手动方法基本上都会做同样的事情。
编辑:听起来你想知道其他“内存释放”应用程序正在做什么。答案是,他们采用手动方法并执行与操作系统相同的操作 - 向正在运行的进程发送信号。这是不必要的原因是免费的ram在你需要它之前实际上对你没有任何好处。操作系统将在您需要额外空间之前执行此操作,这可确保在绝对必要之前不会终止任何进程。
答案 2 :(得分:0)
Android有垃圾收集器。 iOS没有。