【问题标题】:IOS process internals - how to get information?IOS进程内部——如何获取信息?
【发布时间】:2011-09-29 10:05:26
【问题描述】:

我正在寻找一种 API 来监控在普通 iPhone 上运行的任务(没有越狱)。这些是关于:

  • 查看 CPU 使用率(我最关心的问题)。
  • 查看内存使用情况。
  • 查看磁盘使用情况(读/写次数)
  • 查看网络使用情况(网络发送和接收的字节数:3G、Wifi、GSM)。
  • 是否可以依赖在 Mac 上运行的 IOS 模拟器(或者我应该直接在设备上测试我的应用程序)?

我想我可以查看系统 C 库(sigint 等),但除了当前正在运行的应用程序之外,我不确定是否能够检索到这些信息。我知道一些监控应用程序在全局使用情况下运行,但我希望能够按进程查找信息。

如果有人可以提供一些链接或有用的东西,我会开始更深入的调查。

【问题讨论】:

    标签: objective-c c ios4


    【解决方案1】:

    通过查看此相关问题的代码可以找到 CPU 使用率:

    iOS - Get CPU usage from application

    内存使用情况:

    Available memory for iPhone OS app

    这里有几个线程讨论如何找出当前正在运行的应用程序或任务:

    Can we retrieve the applications currently running in iPhone and iPad

    How to get information about free memory and running processes in an App Store approved app? (Yes, there is one!)

    How to get the active processes running in iOS

    这些问题的答案可能会为您指明您想要前进的方向。

    祝你好运!

    【讨论】:

    • 感谢您的回复。我查看了链接并将代码推送到我的应用程序中。它证实了我非常确定的一点:没有办法获得关于程序的详细信息。我可以检索进程名称和优先级,但不能检索它们的 CPU 使用率(至少对于普通 iPhone)。对于当前任务,我可以获得一些详细信息,当然我也可以全局执行此操作(还有多少内存),但不能按进程处理。我想这与 sandbox 应用程序空间有关,以避免窥探其他应用程序的性能。
    • 在我尝试进一步回答您的问题之前,这是针对内部应用、越狱应用还是您想在应用商店销售的应用?
    • 如前所述,它适用于未越狱的 iPhone。而且,最后是内部应用程序(不在 App Store 中出售)。
    • 即使不回答我的问题,这个回答也很完整。根据我的测试和理解,这些应用程序是沙盒化的,因此无法观察 iPhone 上运行的其他应用程序的 CPU 使用率。
    【解决方案2】:

    Activity Monitor 应该会为您提供所需的内容。您应该能够观察每个 iOS 进程的 RAM、CPU 和 VRAM 使用情况。这是随 xCode 一起安装的默认工具。非常方便。

    【讨论】:

    • 当然。但我的问题是:如何在 iPhone 应用程序中获取这些东西(监视在同一设备上运行的其他应用程序)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多