美文网首页
NSProcessInfo

NSProcessInfo

作者: i爱吃土豆的猫 | 来源:发表于2022-07-06 15:18 被阅读0次

概述

iOS 开发中,常常需要在 App 启动时替换域名、指定mock/代理服务器地址、关闭长连接、启动后跳转到指定页面、自动登录、设置经纬度等等。这些前置工作都可以通过启动传参来实现。使用启动传参,有利于提高开发效率。\

如何启动传参

NSProcessInfo
NSProcessInfo 是 macOS 和 iOS 下的进程信息类。包含进程的所有信息。
NSProcessInfo的常见属性和方法如下:
NSProcessInfo *info = [NSProcessInfo processInfo];
NSLog(@"%@",info.environment);                          // 获取运行该进程的系统的环境变量 
NSLog(@"%@",info.arguments);                            // 获取运行该进程的参数
NSLog(@"%@",info.globallyUniqueString);                 // 获取唯一的标示符,每次调用都会不一样,可以用作一些临时缓存文件的名字
NSLog(@"%f",info.systemUptime);                         // 上次设备重启到现在的秒数
NSLog(@"%@",info.hostName);                             // 获取主机名称
NSLog(@"%@",info.processName);                          // 获取该进程的进程名
NSLog(@"%d",info.processIdentifier);                    // 获取该程序的进程标示符
NSLog(@"%@",info.operatingSystemVersionString);         // 系统版本(可用[UIDevice currentDevice].systemVersion代替)
NSLog(@"%lu",info.processorCount);                      // 获取当前项目进程数量
NSLog(@"%lu",info.activeProcessorCount);                // 获取当前项目活跃进程数量
NSLog(@"%llu",info.physicalMemory);                     // 设备的CPU物理内存(单位:byte)
NSLog(@"%d",info.automaticTerminationSupportEnabled);   // 是否支持自动终止(仅限MAC OS)
- (void)disableSuddenTermination                        // 禁止应用突然被干掉(仅限MAC OS)
- (void)enableSuddenTermination                         // 允许应用突然被干掉(仅限MAC OS)
- (void)disableAutomaticTermination:(NSString *)reason  // 禁止应用突然被干掉的理由(仅限MAC OS)
- (void)enableAutomaticTermination:(NSString *)reason   // 允许应用突然被干掉的理由(仅限MAC OS)

其中 environment 是一个 NSDictionary,App 可以通过这个属性获取到所有的环境变量,比如替换 userId、关闭长连接、设置 mock server等等
而 arguments 是一个数组,可以获取运行该进程的参数。对于通过命令行启动 App 时传参特别方便。如 tidevice 启动 App 时,tidevice launch bundleID aaa,其中 aaa 即为启动参数,App 通过 arguments 即可获得

Xcode 实现启动传参

在 Xcode 的环境变量中配置 App 启动时注入的参数,然后使用 NSProcessInfo的 environment 属性获取环境变量。该属性是一个字典,字典里保存了 Xcode启动 App 时传递的环境变量,如下:
Target -> Edit Scheme -> Run -> Arguments -> Environment Variables 点击+ 添加环境变量
备注:
环境变量一: OS_ACTIVITY_MODE
Xcode8 打印台输出乱七八糟的东西,可以设置 OS_ACTIVITY_MODE 为disable。

环境变量二:DYLD_PRINT_STATISTICS
设置 DYLD_PRINT_STATISTICS 为YES,控制台就会打印 App 的加载时长,包括整体加载时长和动态库加载时长。

NSProcessInfo *processInfo = [NSProcessInfo processInfo];
NSLog(@"environment:%@",processInfo.environment);
NSLog(@"arguments:%@",processInfo.arguments);
NSLog(@"hostName:%@",processInfo.hostName);
processInfo.processName = @"custom_process_name";
NSLog(@"processName:%@",processInfo.processName);
NSLog(@"processIdentifier:%d",processInfo.processIdentifier);
NSLog(@"globallyUniqueString:%@",processInfo.globallyUniqueString);
NSLog(@"operatingSystemVersionString:%@",processInfo.operatingSystemVersionString);
NSLog(@"operatingSystemVersion.majorVersion:%ld",processInfo.operatingSystemVersion.majorVersion);
NSLog(@"operatingSystemVersion.minorVersion:%ld",processInfo.operatingSystemVersion.minorVersion);
NSLog(@"operatingSystemVersion.patchVersion:%ld",processInfo.operatingSystemVersion.patchVersion);
NSLog(@"systemUptime:%f",processInfo.systemUptime);
NSLog(@"lowPowerModeEnabled:%d",processInfo.lowPowerModeEnabled);

相关文章

  • NSProcessInfo 获取进程信息

    NSProcessInfo类方法 +(NSProcessInfo*)processInfo//返回当前进程的信息 ...

  • NSProcessInfo类方法

    NSProcessInfo类方法 +(NSProcessInfo*)processInfo//返回当前进程的信息 ...

  • ios 框架中的一些功能类

    Foundation框架之NSProcessInfo 1.NSProcessInfo对象是用来获取进程的相关信息,...

  • NSProcessInfo

    NSProcessInfo类:允许你设置或检索正在运行的应用程序的各种类型信息 (NSProcessInfo *)...

  • NSProcessInfo

    NSProcessInfo类:允许你设置或检索正在运行的应用程序的各种类型信息 过滤数组中的文件类型 :[file...

  • NSProcessInfo

    概述 iOS 开发中,常常需要在 App 启动时替换域名、指定mock/代理服务器地址、关闭长连接、启动后跳转到指...

  • NSProcessInfo

    概述 iOS 开发中,常常需要在 App 启动时替换域名、指定mock/代理服务器地址、关闭长连接、启动后跳转到指...

  • 系统版本号

    NSOperatingSystemVersion sv = [[NSProcessInfo processInfo...

  • iOS8 新特性

    1. NSProcessInfo -isOperatingSystemAtLeastVersion#### 2. ...

  • Swift如何检查系统版本

    let os = NSProcessInfo().operatingSystemVersion switch (o...

网友评论

      本文标题:NSProcessInfo

      本文链接:https://www.haomeiwen.com/subject/eljybrtx.html