Apple SDK を使用して iOS4 で実行されているバックグラウンド アプリケーションから、さまざまなプロセス (cpu ticks) の CPU 使用率を取得しようとしています。これはユーザーの同意を得て完全に行われるため、非倫理的なことは何もありません。
sysctl を使用してプロセス リストを取得しましたが、プロセスの CPU ティックは常にデバイスから 0 として返されます。または、フォアグラウンド プロセスを探し、数秒ごとにポーリングしてアプリケーションの使用状況を取得しようとしました。ただし、プロセスがフォアグラウンドで実行されているかバックグラウンドで実行されているかを示す API/フラグはありません。プロセスのメモリ消費量を取得し、バックグラウンドで実行されているかどうかを確認するためにイベントをチェックしました (バックグラウンドの場合、メモリは変動しません)。ただし、API proc_pidinfo は非公開であり、Apple はアプリを拒否しました。
そのようなトピックに関連する投稿を見たことがありますが、明確な答えは得られませんでした.
サンドボックスが他のアプリに関する情報を取得できないことは承知しています(sysctlがPID、プロセス名、開始時間を提供するため、これは真実ではありません)。しかし、アプリストアで Zokem の MyLife というアプリケーションを見たところ、そのような情報が報告されました。それらは秒単位まで正確です。この情報を格納するシステム ログまたは DB があるかどうか疑問に思っていました。
アプリケーションの使用時間を取得するアイデアはありますか?