App Store中有一个名为"Activity Monitor Touch"的应用程序,它显示后台进程和可用内存.
因此必须有一个公共API来访问这些信息.证据:


我已经找了几天但找不到任何好的起点.这个应用程序如何在没有任何越狱/黑客攻击/等等的情况下解决所有这些问题?
直到最近,我确信这样的东西在iOS上是绝对不可能的.
我找到了这段代码:
- (NSArray *)runningProcesses {
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0};
size_t miblen = 4;
size_t size;
int st = sysctl(mib, miblen, NULL, &size, NULL, 0);
struct kinfo_proc * process = NULL;
struct kinfo_proc * newprocess = NULL;
do {
size += size / 10;
newprocess = realloc(process, size);
if (!newprocess){
if (process){
free(process);
}
return nil;
}
process = newprocess;
st = sysctl(mib, miblen, process, &size, NULL, 0);
} …Run Code Online (Sandbox Code Playgroud) 我目前已经实现了一个简单的活动监视器来监视iOS上的所有运行进程.
要检索所有正在运行的进程的列表,我这样做:
size_t size;
struct kinfo_proc *procs = NULL;
int status;
NSMutableArray *killedProcesses = [[NSMutableArray alloc] init];
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };
status = sysctl(mib, 4, NULL, &size, NULL, 0);
procs = malloc(size);
status = sysctl(mib, 4, procs, &size, NULL, 0);
// now, we have a nice list of processes
Run Code Online (Sandbox Code Playgroud)
如果我想了解有关特定流程的更多信息,我会这样做:
struct kinfo_proc *proc;
int mib[5] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pidNum, 0 };
int count;
size_t size = 0;
// ask the proc size
if(sysctl(mib, …Run Code Online (Sandbox Code Playgroud) 使用此问题中描述的方法,我可以获得在iOS设备上运行的应用列表.我知道PID并且可以访问他们的kinfo_proc结构.如何确定哪些是前台进程以及哪些是后台(假设我的应用程序是后台)?
我试图找出这个基于信息kinfo_proc(参见第1个链接),via kp_proc.p_priority,但看起来不可能从优先级推断背景/前景状态.
我真的不在乎这是否适用于AppStore Review,但我更喜欢一种没有越狱的方法(即私有API可以,但是哪些?).我希望这至少可以在iOS 5上运行
我考虑过编写一个简单的MobileSubstrate扩展,将其注入所有应用程序并且只是挂钩每个人applicationDidBecomeActive,但这需要越狱并且过于侵略.
根据这个iphonedevsdk.com论坛帖子,Frenzapp使用两种方法来检测iOS设备上安装的其他应用程序:
他们使用什么"内核级别C函数"?它在哪里记录?
我正在寻找一个API来监控普通iPhone上运行的任务(没有越狱).这些是关于:
我想我可以查看系统C库(sigint等)但我不确定是否能够检索此信息,除了当前正在运行的应用程序.我知道一些监视器应用程序在全局使用上运行,但我希望能够按流程查找信息流程.
如果有人可以提供某些链接或有用的东西,那么我将开始进行更深入的调查.
我想开发一个应用程序,它应该监视我的I-Phone设备(包括互联网浏览器)上运行了多少时间.
请分享您对此帖的想法.
有点像这样:https: //itunes.apple.com/us/app/system-manager/id455736462?mt = 8
谢谢
如何以编程方式让活动进程在后台运行,iOS 的 CPU 和 RAM 使用情况?
是否有可能编写一个 iOS 应用程序来阻止其他应用程序在未越狱的 iphone/ipad 上运行?
这将是出于合法目的,例如我打开应用程序,将我的 iPad 交给我的孩子,我不必担心他们会删除我的照片或浏览网页。