印出APP当前进程的相关资讯

印出APP当前进程的相关资讯

当你的APP被使用者执行时,系统会产生进程(当前执行时)的资讯,你可以利用Framework取得当下执行的环境、APP程序的ID、执行参数…等,还有一些与自已APP相关的资讯,然而这些资讯都包含在NSProcessInfo之中。

范例:

//-----------start-----------
    NSProcessInfo *processInfo = [NSProcessInfo processInfo];

    NSLog(@"environment:%@",[processInfo environment]);
    NSLog(@"globallyUniqueString: %@", [processInfo globallyUniqueString]);//不重复的值
    NSLog(@"hostName: %@", [processInfo hostName]);//主机名称
    NSLog(@"processIdentifier: %d", [processInfo processIdentifier]);//进程编号
    NSLog(@"processName: %@", [processInfo processName]);
    NSLog(@"operatingSystem: %ld", [processInfo operatingSystem]);//作业系统号码,5为Mac
    NSLog(@"operatingSystemName: %@", [processInfo operatingSystemName]);//作业系统名称
    NSLog(@"operatingSystemVersionString: %@", [processInfo operatingSystemVersionString]);//作业系统版本
    NSLog(@"processorCount: %ld", [processInfo processorCount]);
    NSLog(@"activeProcessorCount: %ld", [processInfo activeProcessorCount]);
    NSLog(@"physicalMemory: %qu", [processInfo physicalMemory]);
    NSLog(@"args: %@", [processInfo arguments]);
//------------end------------

结果:

2014-08-14 22:53:14.608 NSTaskDemo[34851:303] environment:{
    "Apple_PubSub_Socket_Render" = "/tmp/launch-sA4BfM/Render";
    "DYLD_FRAMEWORK_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug";
    "DYLD_LIBRARY_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug";
    HOME = "/Users/danny";
    LOGNAME = danny;
    MallocNanoZone = 1;
    NSUnbufferedIO = YES;
    PATH = "/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin";
    PWD = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug";
    SHELL = "/bin/bash";
    "SSH_AUTH_SOCK" = "/tmp/launch-SgE9fn/Listeners";
    TMPDIR = "/var/folders/2w/90t6mw6j4rv6tvg9d3x9v7q40000gn/T/";
    USER = danny;
    "__CF_USER_TEXT_ENCODING" = "0x1F5:2:53";
    "__CHECKFIX1436934" = 1;
    "__XCODE_BUILT_PRODUCTS_DIR_PATHS" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug";
    "__XPC_DYLD_FRAMEWORK_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug";
    "__XPC_DYLD_LIBRARY_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug";
}
2014-08-14 22:53:14.609 NSTaskDemo[34851:303] globallyUniqueString: 7490E519-8575-42A6-8F40-859E5FCBD04C-34851-000076E66352D518
2014-08-14 22:53:14.949 NSTaskDemo[34851:303] hostName: danny-mbp13.local
2014-08-14 22:53:14.949 NSTaskDemo[34851:303] processIdentifier: 34851
2014-08-14 22:53:14.950 NSTaskDemo[34851:303] processName: NSTaskDemo
2014-08-14 22:53:14.950 NSTaskDemo[34851:303] operatingSystem: 5
2014-08-14 22:53:14.951 NSTaskDemo[34851:303] operatingSystemName: NSMACHOperatingSystem
2014-08-14 22:53:14.953 NSTaskDemo[34851:303] operatingSystemVersionString: Version 10.9.4 (Build 13E28)
2014-08-14 22:53:14.953 NSTaskDemo[34851:303] processorCount: 4
2014-08-14 22:53:14.953 NSTaskDemo[34851:303] activeProcessorCount: 4
2014-08-14 22:53:14.954 NSTaskDemo[34851:303] physicalMemory: 8589934592
2014-08-14 22:53:14.954 NSTaskDemo[34851:303] args: (
    "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug/NSTaskDemo.app/Contents/MacOS/NSTaskDemo",
    "-NSDocumentRevisionsDebugMode",
    YES
)

范例程式因为是透过Xcode直接执行结果,所以也可以间接的知道透过Xcode直接执行时,APP的执行路径是在哪个位置,此范例的执行路径是在:

args: (
    "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug/NSTaskDemo.app/Contents/MacOS/NSTaskDemo",
    "-NSDocumentRevisionsDebugMode",
    YES
)

并且得知它执行时有增加参数-NSDocumentRevisionsDebugModeYES