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

    Le王冬冬 博客分享地址: http://www.cnblogs.com/dongdong230/ 每个人都应做一天攻城狮
  • 相关阅读:
    坦克大战(完结篇)
    坦克大战第一节——画出自己的坦克(新手篇)
    jq动画插件,自制基于vue的圆形时钟
    原生js数值开根算法
    html引入公共模块
    js组件
    前端不缓存,ajax不缓存,js操作cookie
    c++打印实心菱形,空心三角形,十字星,空心正方形,实心平行四边形
    css元素水平垂直居中
    vue日历/日程提醒/html5本地缓存
  • 原文地址:https://www.cnblogs.com/dongdong230/p/4183080.html
Copyright © 2011-2022 走看看