Android读取RAM,ROM,SD卡容量

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. }
上一篇:jquery自动焦点图


下一篇:点击Input框弹出日期选项