1)简介

一般人们在买手机的时候,在手机配置上都会出现“内存容量:512MB ROM+512MB RAM ”等等类似这样的说明,可能很多人都知道RAM的意思就是运存的意思,但是对于rom容量是什么意思,确很少有人知道,还有rom容量和ram容量有什么区别,知道的人也不是很多。今天安卓中文网小编就来为大家详细解释下rom容量是什么意思以及rom容量和ram容量有什么区别。

对于所谓的RAM其实就是运行内存的意思,人们简称为运存,它的作用是当开机后系统运行占一部分外,剩余的运行内存越大,手机速度越快,运行的程序越多,剩余越少。然而ROM就相当于C盘,大家都应该知道在用电脑的时候一般我们不会将安装程序安装到系统盘,因为那样可能会影响机器运行速度,因此rom容量的意思就类似于理解为手机中“C盘”的容量。因为ROM文件过多也会影响速度,不过存放到ROM的文件和程序,读取起来会比放到卡里的快的多。卡就像是除了C盘外的硬盘。当然ram和rom究竟多少合适还要看系统,系统对于内存的占用情况是有很大差距的。

2)代码部分

[java] view
plain
copy

  1. package com.example.androidtest4;
  2. import java.io.File;
  3. import java.text.DecimalFormat;
  4. import android.os.Bundle;
  5. import android.os.Environment;
  6. import android.os.StatFs;
  7. import android.app.Activity;
  8. import android.app.ActivityManager;
  9. import android.app.ActivityManager.MemoryInfo;
  10. import android.content.Context;
  11. import android.view.Menu;
  12. import android.widget.TextView;
  13. public class MainActivity extends Activity {
  14. private TextView rAMTextView=null;
  15. private TextView rOMTextView=null;
  16. private TextView sDTextView=null;
  17. @Override
  18. protected void onCreate(Bundle savedInstanceState) {
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.activity_main);
  21. rAMTextView=(TextView)findViewById(R.id.rAMTextView);
  22. showRAMInfo();
  23. rOMTextView=(TextView)findViewById(R.id.rOMTextView);
  24. showROMInfo();
  25. sDTextView=(TextView)findViewById(R.id.sDTextView);
  26. showSDInfo();
  27. }
  28. /*显示RAM的可用和总容量,RAM相当于电脑的内存条*/
  29. private void showRAMInfo(){
  30. ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
  31. MemoryInfo mi=new MemoryInfo();
  32. am.getMemoryInfo(mi);
  33. String[] available=fileSize(mi.availMem);
  34. String[] total=fileSize(mi.totalMem);
  35. rAMTextView.setText("RAM "+available[0]+available[1]+"/"+total[0]+total[1]);
  36. }
  37. /*显示ROM的可用和总容量,ROM相当于电脑的C盘*/
  38. private void showROMInfo(){
  39. File file=Environment.getDataDirectory();
  40. StatFs statFs=new StatFs(file.getPath());
  41. long blockSize=statFs.getBlockSize();
  42. long totalBlocks=statFs.getBlockCount();
  43. long availableBlocks=statFs.getAvailableBlocks();
  44. String[] total=fileSize(totalBlocks*blockSize);
  45. String[] available=fileSize(availableBlocks*blockSize);
  46. rOMTextView.setText("ROM "+available[0]+available[1]+"/"+total[0]+total[1]);
  47. }
  48. /*显示SD卡的可用和总容量,SD卡就相当于电脑C盘以外的硬盘*/
  49. private void showSDInfo(){
  50. if(Environment.getExternalStorageState().equals
  51. (Environment.MEDIA_MOUNTED)){
  52. File file=Environment.getExternalStorageDirectory();
  53. StatFs statFs=new StatFs(file.getPath());
  54. long blockSize=statFs.getBlockSize();
  55. long totalBlocks=statFs.getBlockCount();
  56. long availableBlocks=statFs.getAvailableBlocks();
  57. String[] total=fileSize(totalBlocks*blockSize);
  58. String[] available=fileSize(availableBlocks*blockSize);
  59. sDTextView.setText("SD "+available[0]+available[1]+"/"+total[0]+total[1]);
  60. }else {
  61. sDTextView.setText("SD CARD 已删除");
  62. }
  63. }
  64. /*返回为字符串数组[0]为大小[1]为单位KB或者MB*/
  65. private String[] fileSize(long size){
  66. String str="";
  67. if(size>=1000){
  68. str="KB";
  69. size/=1000;
  70. if(size>=1000){
  71. str="MB";
  72. size/=1000;
  73. }
  74. }
  75. /*将每3个数字用,分隔如:1,000*/
  76. DecimalFormat formatter=new DecimalFormat();
  77. formatter.setGroupingSize(3);
  78. String result[]=new String[2];
  79. result[0]=formatter.format(size);
  80. result[1]=str;
  81. return result;
  82. }
  83. @Override
  84. public boolean onCreateOptionsMenu(Menu menu) {
  85. // Inflate the menu; this adds items to the action bar if it is present.
  86. getMenuInflater().inflate(R.menu.main, menu);
  87. return true;
  88. }
  89. }

Android读取RAM,ROM,SD卡容量的更多相关文章

  1. Android之外部存储(SD卡)

    *手机的外部存储空间,这个我们可以理解成电脑的外接移动硬盘,U盘也行.所有的Android设备都有两个文件存储区域:“内部”和“外部”存储器.这两个名称来自早期的Android,当时大多数设备都提供内 ...

  2. [android] 保存文件到SD卡

    /****************2016年5月4日 更新*****************************/ 知乎:为什么很多Android应用要把文件写到/sdcard目录下而不是写到/d ...

  3. Android数据存储之SD卡

    为了更好的存取应用程序的大文件数据,应用程序需要读. 写SD卡上的文件.SD卡大大扩充手机的存储能力. 操作SD首先要加权限: <!--在SDCard中创建与删除文件权限 --> < ...

  4. android 写文件到sd卡问题小记

    android 写文件到sd卡问题小记 事情是这样子的.... 这天我开始编写项目调试工具,高大上不?-----其实就是记录实时网络请求和崩溃日志相关等的小工具(此处一个会心的微笑). 然后我是这样写 ...

  5. Android中播放本地SD卡中歌曲须要的加入的权限

    使用MediaPlayer播放本地Mp3文件时.须要注意的訪问路径的问题以及訪问权限的问题. 1.訪问路径:/storage/emulated/0 此路径即为手机的根路径,能够通过下载ES文件浏览器软 ...

  6. Android(java)学习笔记126:判断SD卡状态和SD卡容量

    1. 判断SD卡状态和SD卡存储空间大小 当我们在使用SD卡时候,如果我们想往SD卡里读写数据,我们必须在这之前进行一个逻辑判断,那就是判断SD卡状态和SD存储空间大小: 核心代码: String s ...

  7. Android设备内存和SD卡操作工具类

    package cc.c; import java.io.File; import java.util.List; import android.os.StatFs; import java.io.F ...

  8. 以 SPI 方式获取 SD 卡容量(V2.0)

    下面是 SD 卡 V2.0 协议的 CSD 寄存器内容,来自官方手册: 单片机如何确定当前的 SD 卡遵循 V2.0 协议 CSD 寄存器为 128 个位,即 16 个字节.通过检测 CSD 寄存器的 ...

  9. Android之——清理手机SD卡缓存

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47375595 眼下,市场上非常多Android手机软件都具有清理SD卡缓存的功能, ...

随机推荐

  1. labview中的文件格式

     

  2. hdu 1155 Bungee Jumping

    http://acm.hdu.edu.cn/showproblem.php?pid=1155 Bungee Jumping Time Limit: 2000/1000 MS (Java/Others) ...

  3. spring中文乱码过滤器

    中文乱码过滤器 在您通过表单向服务器提交数据时,一个经典的问题就是中文乱码问题.虽然我们所有的 JSP 文件和页面编码格式都采用 UTF-8,但这个问题还是会出现.解决的办法很简单,我们只需要在 we ...

  4. mysql index的长度限制

    在InnoDB Storage Engine中单独一个列的最大的索引长度为767bytes,utf8字符集中,一个字符占3个字节,所以如果列的类型为char,那么要想在此列上建立索引,此列最多只能有2 ...

  5. ASP.NET服务器控件在IE10浏览器(非兼容模式)下报脚本错误的可能解决办法

    关于IE10出现LinkButton点击无效的情况:        一般高配置的系统如Win7旗舰版SP1系统不会出现这种情况,针对家庭普通版和专业版的用户通过测试都有这种情况,对于开发人员要解决不同 ...

  6. Java的初步认识

    PS:弥补那些错过的时间,弥补那些本是决定做而没有做的事情,当初说好了学习编程要把自己学到的或是理解的写到博客中记录下来,可是由于各种缘由最终是没有实现...经过几番周折决定把那些丢掉的重新捡起来.对 ...

  7. IE6/IE7/IE8 FF常见问题解决

    (从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期2014-04-08) <style type="text/css" > *{ margin:0px a ...

  8. cocos2dx 兼容性

    报错: Caused by: java.lang.UnsatisfiedLinkError: Couldn't load cocos2dcpp: findLibrary returned null 因 ...

  9. 数据对象ajax学习篇9

    题记:写这篇博客要主是加深自己对数据对象的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. 对ajax工作道理: 下面这段是来自一个网友的blog: Ajax的道理简单来说通过Xml ...

  10. Could not load the assembly 'App_Web_cwclgcuu'. Make sure that it is compiled before accessing the page.

    将网站迁移到windows server 2012 R2(64 bit), IIS 6.2(build 9200)上,爆出这个错误. 解决:右键相应的application pool,选择“Set A ...