Android开发实现的内存管理工具类
程序员文章站
2023-08-12 13:44:34
本文实例讲述了android开发实现的内存管理工具类。分享给大家供大家参考,具体如下:
/************************************...
本文实例讲述了android开发实现的内存管理工具类。分享给大家供大家参考,具体如下:
/*********************************************** * 内存管理工具 * * @author chen.lin * @version 1.0 ************************************************/ public class memorymanager { private static final string tag = "memorymanager"; private static final int maxmemory=300*1024*1024;//程序运行的最大内存 模拟器(0-16m) /** * 判断系统是否在低内存下运行 * @param context * @return */ public static boolean hasacailmemory() { // 获取手机内部空间大小 long memory = getavailableinternalmemorysize(); log.i(tag, memory+""); if (memory < maxmemory) { //应用将处于低内存状态下运行 return false; } else { return true; } } /** * 获取手机内部可用空间大小 * * @return */ @suppresswarnings("deprecation") public static long getavailableinternalmemorysize() { file path = environment.getdatadirectory();// 获取 android 数据目录 statfs stat = new statfs(path.getpath());// 一个模拟linux的df命令的一个类,获得sd卡和手机内存的使用情况 long blocksize = stat.getblocksize();// 返回 int ,大小,以字节为单位,一个文件系统 long availableblocks = stat.getavailableblocks();// 返回 int ,获取当前可用的存储空间 return availableblocks * blocksize; } /** * 获取手机内部空间大小 * * @return */ @suppresswarnings("deprecation") public static long gettotalinternalmemorysize() { file path = environment.getdatadirectory(); statfs stat = new statfs(path.getpath()); long blocksize = stat.getblocksize(); long totalblocks = stat.getblockcount();// 获取该区域可用的文件系统数 return totalblocks * blocksize; } /** * 获取手机外部可用空间大小 * * @return */ @suppresswarnings("deprecation") public static long getavailableexternalmemorysize() { if (externalmemoryavailable()) { file path = environment.getexternalstoragedirectory(); statfs stat = new statfs(path.getpath()); long blocksize = stat.getblocksize(); long availableblocks = stat.getavailableblocks(); return availableblocks * blocksize; } else { throw new runtimeexception("don't have sdcard."); } } /** * 获取手机外部空间大小 * * @return */ @suppresswarnings("deprecation") public static long gettotalexternalmemorysize() { if (externalmemoryavailable()) { file path = environment.getexternalstoragedirectory();// 获取外部存储目录即 sdcard statfs stat = new statfs(path.getpath()); long blocksize = stat.getblocksize(); long totalblocks = stat.getblockcount(); return totalblocks * blocksize; } else { throw new runtimeexception("don't have sdcard."); } } /** * 外部存储是否可用 * * @return */ public static boolean externalmemoryavailable() { return android.os.environment.getexternalstoragestate().equals(android.os.environment.media_mounted); } }
更多关于android相关内容感兴趣的读者可查看本站专题:《android开发之内存与缓存技巧总结》、《android资源操作技巧汇总》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android文件操作技巧汇总》、《android开发入门与进阶教程》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
推荐阅读
-
Android开发之图形图像与动画(三)Animation效果的XML实现
-
iOS应用开发中使用NSLocale类实现对象信息的本地化
-
Android开发之图形图像与动画(二)Animation实现图像的渐变/缩放/位移/旋转
-
Android开发实现读取assets目录下db文件的方法示例
-
Android开发实现ImageView加载摄像头拍摄的大图功能
-
Android开发实现的Intent跳转工具类实例
-
Android开发中超好用的正则表达式工具类RegexUtil完整实例
-
Android开发实现查询远程服务器的工具类QueryUtils完整实例
-
Android开发中的文件操作工具类FileUtil完整实例
-
Android用MVP实现一个简单的类淘宝订单页面的示例