“内存清理器”应用程序如何确定iOS上已用内存的数量?

时间:2011-11-07 22:05:23

标签: iphone ios memory memory-management

随时都有“内存清理器”应用程序在iOS AppStore的下载图表顶部冒泡,但我总是感到困惑:这些应用程序如何计算出沙盒中使用的内存量,而不是访问进程外的任何内存? 我不是C上内存分配的专家,所以也许解决方案很明显,我只是不知道,但我很好奇它是如何工作/可以工作的。

显然,第二个问题是他们如何在计数后清理内存,我认为他们只是分配了大量重物(例如图像),从而迫使操作系统关闭其他进程。然而,也许有一种更聪明的方式?

注意,我不是在谈论Cydia,这些应用程序可以在常规AppStore上获得,并且在Apple正式同意的情况下在非破解设备上运行。例如,以下是当前最畅销的商家:http://iputzfrau.professional-apps.at/

3 个答案:

答案 0 :(得分:3)

这些应用程序,与“跟踪任何手机”应用程序一样,只有“仅用于娱乐目的”的应用程序隐藏在描述的第30,239行中,这些应用程序都是骗局。 Apple让他们度过了审核流程,真是令人沮丧。

答案 1 :(得分:3)

Mach / BSD host_statisticssysctl函数在iOS上可用,它们提供对系统统计信息的访问,例如物理RAM量,处理器速度以及实际RAM空闲量可用。要获得后者,您需要使用host_statistics致电HOST_VM_INFO,并在其填写的结构中查看free_count。请注意,此值不一定适用于任何实际目的。你可能不需要它,除非你想写另一个骗子应用程序。

C / UNIX / Mach / BSD层中的低级函数通常可用于iOS应用程序,尽管这些API通常未在SDK文档中描述。查看/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/include/中的标题,并参阅Mac OS手册页,C / UNIX标准文档或Mac SDK以获取有关它们的更多详细信息。

答案 2 :(得分:0)

你是对的 - 没有公共API能够像你所链接的应用程序那样启用它声称要执行的操作。

这对Apple来说是一个很好的问题,或者至少在Apple开发者论坛上发布。您还可以report a bug,这可能是最有效的方式来注册投诉而不会让自己失败。