Получение загрузки ЦП определенного процесса на iOS4 - PullRequest
5 голосов
/ 13 июня 2011

Я пытаюсь получить загрузку процессора различными процессами (тики процессора) из фонового приложения, работающего на iOS4 с использованием Apple SDK. Это делается полностью с согласия пользователей, поэтому здесь нет ничего неэтичного.

Я использовал sysctl для получения списка процессов, но тики процессора для процесса всегда возвращаются как 0 с устройства. В качестве альтернативы я пытался искать процесс переднего плана и опрашивать каждые несколько секунд, чтобы таким образом использовать приложение. Тем не менее, отсутствует API / флаг, который указывает, выполняется ли процесс на переднем плане или в фоновом режиме. Я проверил событие на предмет потребления памяти процессом и выяснил, запущен ли он в фоновом режиме (память не будет колебаться, если в фоновом режиме). Однако API proc_pidinfo является закрытым, и Apple отклонила приложение.

Я видел сообщения, связанные с такими темами, но не получил однозначного ответа.

Я знаю, что песочница не позволит получить информацию о других приложениях (что, кстати, не соответствует действительности, поскольку sysctl выдает PID, имена процессов и время запуска). Тем не менее, я увидел приложение в магазине приложений под названием MyLife от Zokem, и они сообщают такую ​​информацию. Они с точностью до секунды. Мне было интересно, есть ли системный журнал или БД, в которой хранится эта информация.

У кого-нибудь есть идеи по получению времени использования приложений?

...