获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等

本文主要是介绍获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

设备可用内存及当前应用所占内存

// 获取当前设备可用内存及所占内存的头文件  
#import <sys/sysctl.h>  
#import <mach/mach.h>  // 获取当前设备可用内存(单位:MB)  
- (double)availableMemory  
{  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;  
}  // 获取当前任务所占用的内存(单位:MB)  
- (double)usedMemory  
{  task_basic_info_data_t taskInfo;  mach_msg_type_number_t infoCount = TASK_BASIC_INFO_COUNT;  kern_return_t kernReturn = task_info(mach_task_self(),   TASK_BASIC_INFO,   (task_info_t)&taskInfo,   &infoCount);  if (kernReturn != KERN_SUCCESS  ) {  return NSNotFound;  }  return taskInfo.resident_size / 1024.0 / 1024.0;  
}  

手机系统大小、可用空间大小

+(uint64_t)getFreeDiskspace {uint64_t totalSpace = 0.0f;uint64_t totalFreeSpace = 0.0f;NSError *error = nil;NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];if (dictionary) {NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];totalSpace = [fileSystemSizeInBytes floatValue];totalFreeSpace = [freeFileSystemSizeInBytes floatValue];NSLog(@"Memory Capacity of %llu GB with %llu GB Free memory available.", ((totalSpace/1024ll)/1024ll/1024ll), ((totalFreeSpace/1024ll)/1024ll/1024ll));} else {NSLog(@"Error Obtaining System Memory Info: Domain = %@, Code = %d", [error domain], [error code]);}return totalFreeSpace;
}

其中
attributesOfFileSystemForPath:error:
返回的是一个字典。感兴趣的同学可用自己看下里面的其他信息




这篇关于获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/471868

相关文章

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

关于MySQL将表中数据删除后多久空间会被释放出来

《关于MySQL将表中数据删除后多久空间会被释放出来》MySQL删除数据后,空间不会立即释放给操作系统,而是会被标记为“可重用”,以供未来插入新数据时使用,只有满足特定条件时,空间才可能真正返还给操作... 目录一、mysql数据删除与空间管理1.1 理解MySQL数据删除原理1.3 执行SQL1.3 使用

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1