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. [转]Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

    Android事件分发机制 该篇文章出处:http://blog.csdn.net/guolin_blog/article/details/9097463 其实我一直准备写一篇关于Android事件分 ...

  2. Spring AOP 实现原理

    什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入 ...

  3. 线程池:ThreadPoolExecutor

    [ThreadPoolExecutor的使用和思考]   public ThreadPoolExecutor(int corePoolSize,                             ...

  4. C#之 HashSet(临时笔记,未参考资料,请慎重)

    HashSet是一个集合,类似于DataSet,但是其主要用途是用来存放同一种类型的元素(string.row.table等),如果添加的元素跟定义时初始的类型不一致,就会直接编译失败. 例如: Ha ...

  5. visual studio 设计器上出现蓝色的点和箭头

    visual studio 设计器上出现蓝色的点和箭头: 突然发现打开visual studio 的时候出现了很多蓝色的点和箭头,解决办法是:按组合快捷键 Ctrl+R,Ctrl+W 或 Ctrl+E ...

  6. (剑指Offer)面试题23:从上到下打印二叉树

    题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路: 很明显,这是一个广度优先遍历. 需要一个队列容器来保存结点,具体操作: 1.将根结点压入队列中,并打印根结点:如果根结点有子结点 ...

  7. JSP页面上用横线代替文本框

    <tr> <td class="content" colspan = 4> <input type="hidden" name=& ...

  8. C++ Interview - using new and delete to alloc and free memory

    1. dynamic create object and initialization int *pi = new int; // pi points to an uninitialized int ...

  9. cdoj 题目简单分类

    如有错误请联系我,下面题的题解,除了傻逼题均可以在我blog中查找 1 傻逼题 3 傻逼题 4 傻逼题 15 dfs 24 傻逼题 25傻逼题 26 傻逼题 30 flyod 31 01背包 42 k ...

  10. 微软ASP.NET网站部署指南(4):配置项目属性

    1.  综述 有些部署设置能够在项目属性里设置的,而且保持到项目文件中(.csproj或.vbproj). 大多数情况下.你都能够在Visual Studio 选择项目属性Project Proper ...