文档章节

iOS获取正在运行应用

vimfung
 vimfung
发布于 2013/01/02 22:33
字数 197
阅读 649
收藏 7

注:该功能在iOS9上已经不再生效。 

@interface UIDevice (ProcessesAdditions)
 - (NSArray *)runningProcesses;
 @end
 // .m
 #import <sys/sysctl.h>
 @implementation UIDevice (ProcessesAdditions)
 - (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);
                 
     } while (st == -1 && errno == ENOMEM);
         
         if (st == 0){
                 
                 if (size % sizeof(struct kinfo_proc) == 0){
                         int nprocess = size / sizeof(struct kinfo_proc);
                 
                         if (nprocess){
                         
                                 NSMutableArray * array = [[NSMutableArray alloc] init];
         
                                 for (int i = nprocess - 1; i >= 0; i--){
                 
                                         NSString * processID = [[NSString alloc] initWithFormat:@"%d", process[i].kp_proc.p_pid];
                                         NSString * processName = [[NSString alloc] initWithFormat:@"%s", process[i].kp_proc.p_comm];
                 
                                         NSDictionary * dict = [[NSDictionary alloc] initWithObjects:[NSArray arrayWithObjects:processID, processName, nil] 
                                                                                                                                                 forKeys:[NSArray arrayWithObjects:@"ProcessID", @"ProcessName", nil]];
                                         [processID release];
                                         [processName release];
                                         [array addObject:dict];
                                         [dict release];
                                 }
         
                                 free(process);
                                 return [array autorelease];
                         }
                 }
         }
         
         return nil;
 }
 @end
 // Example usage.
 NSArray * processes = [[UIDevice currentDevice] runningProcesses];
 for (NSDictionary * dict in processes){
         NSLog(@"%@ - %@", [dict objectForKey:@"ProcessID"], [dict objectForKey:@"ProcessName"]);
 }

本文转载自:http://blog.csdn.net/itjobtxq/article/details/8012976

vimfung

vimfung

粉丝 60
博文 59
码字总数 85338
作品 4
广州
技术主管
私信 提问
iOS 9应用开发教程之创建iOS 9项目与模拟器介绍

iOS 9应用开发教程之创建iOS 9项目与模拟器介绍 编写第一个iOS 9应用 本节将以一个iOS 9应用程序为例,为开发者讲解如何使用Xcode 7.0去创建项目,以及iOS模拟器的一些功能、编辑界面等内容。...

大学霸
2015/08/06
0
0
分析Android平台环境及开发者可借鉴的措施

第1页分析Android平台环境及开发者可借鉴的措施 随Google Play繁荣发展 苹果逐步淘汰UDID的计划引起了应用营销社区的恐慌。UDID曾为广告活动提供了标准化且获得广泛支持的方法。不幸的是,目...

oschina
2012/05/22
1K
11
iOS Simulator功能介绍关于Xamarin IOS开发

iOS Simulator功能介绍关于Xamarin IOS开发 iOS Simulator功能介绍 在图1.38所示的运行效果中,所见到的类似于手机的模型就是iOS Simulator。在没有iPhone或iPad设备时,可以使用iOS Simulat...

大学霸
2015/04/17
0
0
苹果 iOS 10 更新消息汇总,iPhone 4s 可能用不了

自从iOS 7放弃沿用数代的拟物化界面,开启全新的扁平化系统以来,iOS每一年都在前作的基础上进行完善,使iOS更加的好用、完美。去年6月,苹果发布了新一代操作系统iOS 9,并在9月份发布新款i...

oschina
2016/05/30
5.1K
29
应用性能接入框架 - Matrix for iOS/macOS

Matrix for iOS/macOS 是一款微信团队研发并日常使用的性能探针工具,目前集成在 iOS 和 macOS 微信的 APM(Application Performance Manage)平台中使用。Matrix for iOS/macOS 建立了一套 ...

匿名
04/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
1
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
2
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
4
0
拉普拉斯算子

拉普拉斯算子是二阶微分算子。 我们知道,一维离散信号一阶微分公式如下: 相应的,一维离散信号二阶微分公式如下: 由于图像有x和y两个方向,因此图像信号属于二维离散信号。其在x,y两个...

yepanl
昨天
3
0
记录"正则表达式"

详细请查看我的博客:https://blog.enjoytoshare.club/article/RegularExpression.html 1 写在前面 正则表达式(Regular Expression)在代码中常常简写为regex。正则表达式通常被用来检索、替...

wugenqiang
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部