android sd卡 格式化 rom,Android 系统获取内存,ROM,SD卡大小

本文详细介绍了如何在Android系统中获取内存、ROM以及SD卡的使用情况。通过ActivityManager和StatFs类,可以分别获取到系统可用内存、总内存、内部存储空间以及SD卡的可用和总容量。示例代码展示了具体的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接记录方法下来,我个人理解  RAM:指的是内存   ROM:内部存储    SD卡属于外部存储

我的小米2A运行得到的结果是:113MB/755MB (可用内存与系统差不多/系统标的是1GB)

875MB/3.49GB

3.17GB/9.37GB(可用sd卡与系统显示差不多/sd总大小系统显示10GB)

kukai电视结果:349MB/811MB

4.07GB/5.66GB (系统显示4.07GB/8GB)

没有sd卡但还是显示 4.07GB/5.66GB

// 获取android当前可用内存大小

private String getAvailMemory() {

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

MemoryInfo mi = new MemoryInfo();

am.getMemoryInfo(mi);

//mi.availMem; 当前系统的可用内存

return Formatter.formatFileSize(getBaseContext(), mi.availMem);// 将获取的内存大小规格化

}

//系统总内存大小

private String getTotalMemory() {

String str1 = "/proc/meminfo";// 系统内存信息文件

String str2;

String[] arrayOfString;

long initial_memory = 0;

try {

FileReader localFileReader = new FileReader(str1);

BufferedReader localBufferedReader = new BufferedReader(

localFileReader, 8192);

str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小

arrayOfString = str2.split("\\s+");

for (String num : arrayOfString) {

Log.i(str2, num + "\t");

}

initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte

localBufferedReader.close();

} catch (IOException e) {

}

return Formatter.formatFileSize(getBaseContext(), initial_memory);// Byte转换为KB或者MB,内存大小规格化

}

//ROM大小

private String getRomSpace() {

File path = Environment.getDataDirectory();

StatFs stat = new StatFs(path.getPath());

long blockSize = stat.getBlockSize();

long totalBlocks = stat.getBlockCount();

long availableBlocks = stat.getAvailableBlocks();

//long usedBlocks=totalBlocks-availableBlocks;

String totalSize = Formatter.formatFileSize(getApplicationContext(), totalBlocks*blockSize);

String availableSize = Formatter.formatFileSize(getApplicationContext(), availableBlocks*blockSize);

return availableSize+"/"+totalSize;

}

//得到SD卡大小

private String getSdcardSize(){

File path = Environment.getExternalStorageDirectory();//得到SD卡的路径

StatFs stat = new StatFs(path.getPath());//创建StatFs对象,用来获取文件系统的状态

long blockCount = stat.getBlockCount();

long blockSize = stat.getBlockSize();

long availableBlocks = stat.getAvailableBlocks();

String totalSize = Formatter.formatFileSize(getApplicationContext(), blockCount*blockSize);//格式化获得SD卡总容量

String availableSize = Formatter.formatFileSize(getApplicationContext(), availableBlocks*blockSize);//获得SD卡可用容

return availableSize+"/"+totalSize;

}

-------------------------------附上课笔记-------------------------------------------------------------

20.5.ActivityManager获取内存大小

剩余可用内存

MemoryInfooutInfo =newActivityManager.MemoryInfo();

activityManager.getMemoryInfo(outInfo);

floatavailMem=outInfo.availMem/1024f/1024f;

//格式化这个文本字符串

DecimalFormatformat =newDecimalFormat("###.00");

StringavailMemStr = format.format(availMem);

tv_avail_memory.setText(availMemStr+"MB");

单个进程占用内存:用DecimalFormat格式化得到的int值(参照上面)

MemoryInfo[]memoryInfo =activityManager.getProcessMemoryInfo(pids);

intkbMemory = memoryInfo[0].getTotalPrivateDirty()

总内内存

Api中没有相关方法:方法一(很多软件这样做):可用上面两个相加方法二(实际内存大小):Build类,用反射获得,从类中可取得内存大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值