`
1028826685
  • 浏览: 938478 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

查看内存存储

阅读更多
import java.io.File;

import android.os.Environment;
import android.os.StatFs;

public class MemoryStatus {

static final int ERROR = -1;

static public boolean externalMemoryAvailable() {
return android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
}

static public long getAvailableInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return availableBlocks * blockSize;
}

static public long getTotalInternalMemorySize() {
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
}

static public 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 {
return ERROR;
}
}

static public long getTotalExternalMemorySize() {
if(externalMemoryAvailable()) {
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return totalBlocks * blockSize;
} else {
return ERROR;
}
}

static public String formatSize(long size) {
String suffix = null;

if (size >= 1024) {
suffix = "KiB";
size /= 1024;
if (size >= 1024) {
suffix = "MiB";
size /= 1024;
}
}

StringBuilder resultBuffer = new StringBuilder(Long.toString(size));

int commaOffset = resultBuffer.length() - 3;
while (commaOffset > 0) {
resultBuffer.insert(commaOffset, ',');
commaOffset -= 3;
}

if (suffix != null)
resultBuffer.append(suffix);
return resultBuffer.toString();
}
}
分享到:
评论

相关推荐

    8、HDFS内存存储策略支持和“冷热温”存储

    在大数据处理场景中,为了优化性能和降低成本,HDFS支持了多种存储策略,包括“冷热温”存储策略以及内存存储策略——LAZY PERSIST。 一、HDFS内存存储策略支持 1. LAZY PERSIST介绍 LAZY PERSIST是一种内存存储...

    C# 共享内存 存储

    C# 共享内存 存储 C# 共享内存 存储 C# 共享内存 存储

    易语言源码易语言自定义数据类型的内存存储方式.rar

    易语言源码易语言自定义数据类型的内存存储方式.rar 易语言源码易语言自定义数据类型的内存存储方式.rar 易语言源码易语言自定义数据类型的内存存储方式.rar 易语言源码易语言自定义数据类型的内存存储方式.rar ...

    在 UEFI shell 下读取内存存储的数据信息

    在UEFI(统一可扩展固件接口)shell环境下,读取内存存储的数据信息是一项重要的系统诊断和调试任务。UEFI shell提供了一个用户友好的命令行界面,允许开发者和系统管理员直接与固件交互,执行各种操作,包括内存访问...

    基于内存的分布式存储系统Tachyon

    Tachyon是Intel公司推出的一个基于内存的分布式存储系统,它诞生于对数据处理速度的不断追求之中,意图解决传统分布式存储系统在数据处理效率上的不足。传统的存储系统大多依赖于磁盘,而磁盘的读写速度相较于内存来...

    易语言自定义数据类型的内存存储方式

    本文将深入探讨易语言中自定义数据类型的内存存储方式及其相关知识点。 首先,我们要理解易语言中的基本数据类型,如整型、浮点型、字符串等,它们在内存中都有固定大小的存储空间。例如,整型通常占用4个字节,...

    内存管理、内存存储、段错误详解

    内存管理、内存存储结构、段错误出现原因避免方法等详解

    可变分区存储管理方式的内存分配和回收

    ### 可变分区存储管理方式的内存分配与回收 #### 概述 可变分区存储管理方式是一种在早期操作系统中广泛采用的内存管理技术。它通过动态地将内存划分为不同大小的分区来满足不同程序的内存需求。这种方式能够有效地...

    操作系统---虚拟存储区和内存工作区

    在操作系统的设计中,虚拟存储区和内存工作区是两个关键概念,它们对于理解和优化系统的性能至关重要。 虚拟存储区是现代操作系统中一种重要的内存管理技术,它的主要目的是解决物理内存(RAM)有限而程序需求空间...

    ORACLE自动内存管理和存储调整

    ORACLE 自动内存管理和存储调整 ORACLE 自动内存管理和存储调整是 ORACLE 数据库中的一种重要配置,它可以根据系统的实际情况自动调整内存和存储的使用,以提高数据库的性能和效率。本文将详细介绍 ORACLE 自动内存...

    模拟内存页式存储管理

    内存是计算机系统中至关重要的组成部分,它负责存储程序的运行时数据和指令。在现代操作系统中,内存管理是一项复杂但至关重要的任务,旨在优化资源利用并确保程序的正确执行。页式存储管理是一种广泛采用的内存管理...

    华为内存存储基础知识

    华为内存存储基础知识

    航空公司应用中的MySQL内存存储引擎.pdf

    航空公司应用中的MySQL内存存储引擎 MySQL 是一种开源关系型数据库管理系统,广泛应用于航空公司的信息系统。为提高航空公司应用中的数据存储和管理效率,本文提出了一种用内存存储引擎管理航空公司基础数据的方法...

    微机组装,内存存储管理

    内存储器简称内存,也称主存,它主要负责CPU与其它设备间的数据传递,是计算机存储各种信息的部件;是泛指计算机系统中存放数据与指令的半导体存储单元。

    C语言中常用数据类型内存存储形式

    C语言中数据类型在内存中的存储是计算机科学中的基础知识点,涉及到数据在计算机内部的表示和处理方式。...开发者通过对数据类型内存存储的理解,能够更好地掌握C语言的底层机制,编写出更加符合系统底层操作的程序。

    内存数据存储图解.rar

    内存数据存储是计算机科学中的核心概念,它涉及到计算机如何高效地管理和访问临时数据。内存,也称为RAM(随机存取存储器),是计算机系统中的一种重要组成部分,它用于存放正在运行的应用程序和操作系统所需的指令...

    动态分区存储管理 最佳适应算法 内存分配和回收

    本实验重点研究的是动态分区存储管理,其中最佳适应算法是一种常见的内存分配策略。下面将详细探讨这一主题。 动态分区存储管理是相对于固定分区的一种内存管理方式,它允许内存空间根据进程的实际需求进行动态分配...

    redis内存存储结构分析

    ### Redis内存存储结构分析 #### 一、Redis内存存储总体结构概述 Redis是一种高性能的键值存储系统,它将所有数据存储在内存中,从而实现了非常快的数据读写速度。然而,这种设计也有其局限性,例如对于拥有大量...

    线程存储和共享内存

    线程存储和共享内存是两种不同的内存管理机制,它们在多进程和多线程编程中起着至关重要的作用。理解这两种机制有助于我们更好地进行进程间通信(IPC)和线程间的数据管理。 首先,MMU(Memory Management Unit,...

    内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理]

    本文将深入探讨标题和描述中提到的几个关键概念:内存区划分、内存分配、常量存储区、堆、栈、自由存储区和全局区。 首先,我们来看内存区划分。在C++中,内存被分为以下几个主要区域: 1. **常量存储区**:存储...

Global site tag (gtag.js) - Google Analytics