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. packagecom.example.androidtest4;
  2. importjava.io.File;
  3. importjava.text.DecimalFormat;
  4. importandroid.os.Bundle;
  5. importandroid.os.Environment;
  6. importandroid.os.StatFs;
  7. importandroid.app.Activity;
  8. importandroid.app.ActivityManager;
  9. importandroid.app.ActivityManager.MemoryInfo;
  10. importandroid.content.Context;
  11. importandroid.view.Menu;
  12. importandroid.widget.TextView;
  13. publicclassMainActivityextendsActivity{
  14. privateTextViewrAMTextView=null;
  15. privateTextViewrOMTextView=null;
  16. privateTextViewsDTextView=null;
  17. @Override
  18. protectedvoidonCreate(BundlesavedInstanceState){
  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. privatevoidshowRAMInfo(){
  30. ActivityManageram=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
  31. MemoryInfomi=newMemoryInfo();
  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. privatevoidshowROMInfo(){
  39. Filefile=Environment.getDataDirectory();
  40. StatFsstatFs=newStatFs(file.getPath());
  41. longblockSize=statFs.getBlockSize();
  42. longtotalBlocks=statFs.getBlockCount();
  43. longavailableBlocks=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. privatevoidshowSDInfo(){
  50. if(Environment.getExternalStorageState().equals
  51. (Environment.MEDIA_MOUNTED)){
  52. Filefile=Environment.getExternalStorageDirectory();
  53. StatFsstatFs=newStatFs(file.getPath());
  54. longblockSize=statFs.getBlockSize();
  55. longtotalBlocks=statFs.getBlockCount();
  56. longavailableBlocks=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("SDCARD已删除");
  62. }
  63. }
  64. /*返回为字符串数组[0]为大小[1]为单位KB或者MB*/
  65. privateString[]fileSize(longsize){
  66. Stringstr="";
  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. DecimalFormatformatter=newDecimalFormat();
  77. formatter.setGroupingSize(3);
  78. Stringresult[]=newString[2];
  79. result[0]=formatter.format(size);
  80. result[1]=str;
  81. returnresult;
  82. }
  83. @Override
  84. publicbooleanonCreateOptionsMenu(Menumenu){
  85. //Inflatethemenu;thisaddsitemstotheactionbarifitispresent.
  86. getMenuInflater().inflate(R.menu.main,menu);
  87. returntrue;
  88. }
  89. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值