iphone开发之通过unix系统底层获取和系统相关的硬件信息

网友投稿 972 2022-09-24

iphone开发之通过unix系统底层获取和系统相关的硬件信息

iphone开发之通过unix系统底层获取和系统相关的硬件信息

在获取和系统相关的硬件信息的时候,api的接口有时并不是很多。但是我的理解是iOS终究是一个操作系统,是一个基于unix的衍生系统,从操作系统的角度来理解的话,系统底层的东西是很丰富的。

内核 sysctl 含义详解:

l  compat子树:内核二进制兼容相关的控制

l  debug子树:内核调试与信息查询

l  dev子树:用于遍历和查询系统中的设备信息

l  hw子树:硬件驱动信息及行为控制

l  kern子树:内核核心信息及行为控制

l  kstat子树:内核统计数据

l  machdep子树:平台相关的行为控制

l  net子树:网络子系统

l  p1003_1b子树:POSIX 1003.1b 实时扩展行为控制

l  security子树:内核安全特性行为控制

l  user子树:用户环境配置

l  vfs子树:虚拟文件系统信息和行为控制

l  vm子树:虚拟内存子系统统计数据和行为控制

l  通过 sysctl 进行调优。

这样子通过下面的方式,可以得到很多的信息,包括CPU,内存大小等信息:

+ (NSString *) getSysInfoByName:(char *)typeSpecifier

{

size_t size;

sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);

char *answer = malloc(size);

sysctlbyname(typeSpecifier, answer, &size, NULL, 0);

NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];

free(answer);

return results;

}

获取平台信息

+ (NSString *) platform

{

return [self getSysInfoByName:"hw.machine"];

}

+ (NSUInteger) getSysInfo: (uint) typeSpecifier

{

size_t size = sizeof(int);

int results;

int mib[2] = {CTL_HW, typeSpecifier};

sysctl(mib, 2, &results, &size, NULL, 0);

return (NSUInteger) results;

}

获取CPU频率

+ (NSUInteger) getCpuFrequency

{

return [self getSysInfo:HW_CPU_FREQ];

}

获取总线频率

+ (NSUInteger) getBusFrequency

{

return [self getSysInfo:HW_BUS_FREQ];

}

获取总的内存大小

+ (NSUInteger) getTotalMemory

{

return [self getSysInfo:HW_PHYSMEM];

}

获取用户内存

+ (NSUInteger) getUserMemory

{

return [self getSysInfo:HW_USERMEM];

}

获取socketBufferSize

+ (NSUInteger) maxSocketBufferSize

{

return [self getSysInfo:KIPC_MAXSOCKBUF];

}

iphone下获取可用的内存大小

+ (NSUInteger)getAvailableMemory

{

vm_statistics_data_t vmStats;

mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT;

kern_return_t kernReturn = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vmStats, &infoCount);

if(kernReturn != KERN_SUCCESS)

return NSNotFound;

return (vm_page_size * vmStats.free_count);// / 1024.0) / 1024.0;

}

其他还有很多的信息和控制,包括网络相关的操作,wifi的mac地址等。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:玩转启发式搜索,打通汽车营销新枢纽!(汽车营销思路)
下一篇:VI编辑器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~