Android內部儲存和外部儲存,以及讀取Android讀取RAM,ROM內部儲存和外部儲存卡容量

一隻小_小菜鳥發表於2017-12-02

Android內部儲存和外部儲存,參考http://blog.csdn.net/sinat_32955803/article/details/51259556及http://blog.csdn.net/fancylovejava/article/details/49490663

內部儲存
系統儲存├─物理位置是位於手機內部的非易失性儲存器上,就是俗稱的ROM(機身記憶體),他們三個分別位於不同的分割槽上,
系統快取


內部儲存是輔助儲存器(ROM機身記憶體)的一部分。內部儲存所指的就是 “/data”這個資料夾,對於普通使用者是不可見的,我們一般的應用程式都是安裝在這個分割槽下的。應該就是安裝記憶體。
把手機連線電腦,能被電腦識別的部分就一定是外部儲存,就是平時看到的手機儲存空間。
所有的安卓裝置都有外部儲存和內部儲存,這兩個名稱來源於安卓的早期裝置。
用程式碼獲得手機內部儲存2.92G/11.85G,外部儲存2.87G/11.85G;平板內部儲存4.92G/5.33G,外部儲存4.77G/5.18G。手機總的16G,有4.14G應該是系統儲存,但看內部的11.85、5.33也應該少了一部分,不知道是什麼。還是沒有搞得很清楚

Android讀取RAM,ROM,SD卡容量

參考http://www.cnblogs.com/dongdong230/p/4183080.html
  1. /**
  2. *顯示RAM的可用和總容量
  3. */   
  4.     private void showRAMInfo(){  
  5.         ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);  
  6.         MemoryInfo mi=new MemoryInfo();  
  7.         am.getMemoryInfo(mi);  
  8.         String[] available=fileSize(mi.availMem);  
  9.         String[] total=fileSize(mi.totalMem);  
  10.         rAMTextView.setText("RAM "+available[0]+available[1]+"/"+total[0]+total[1]);     
  11.     }  
  12. /**
  13. *顯示ROM的可用和總容量 獲取手機內部儲存空間
  14. */
  15.     private void showROMInfo(){  
  16.         File file=Environment.getDataDirectory();   
  17.         StatFs statFs=new StatFs(file.getPath());    
  18.         long blockSize=statFs.getBlockSize();    
  19.         long totalBlocks=statFs.getBlockCount();    
  20.         long availableBlocks=statFs.getAvailableBlocks();    
  21.             
  22.         String[] total=fileSize(totalBlocks*blockSize);    
  23.         String[] available=fileSize(availableBlocks*blockSize);    
  24.             
  25.         rOMTextView.setText("ROM "+available[0]+available[1]+"/"+total[0]+total[1]);     
  26.     }  
  27. /**
  28. *顯示SD卡的可用和總容量,獲取手機外部儲存空間
  29. */
  30.     private void showSDInfo(){  
  31.         if(Environment.getExternalStorageState().equals    
  32.         (Environment.MEDIA_MOUNTED)){//sd卡是否可用
  33.             File file=Environment.getExternalStorageDirectory();    
  34.             StatFs statFs=new StatFs(file.getPath());    
  35.             long blockSize=statFs.getBlockSize();    
  36.             long totalBlocks=statFs.getBlockCount();    
  37.             long availableBlocks=statFs.getAvailableBlocks();    
  38.                 
  39.             String[] total=fileSize(totalBlocks*blockSize);    
  40.             String[] available=fileSize(availableBlocks*blockSize);    
  41.                 
  42.             sDTextView.setText("SD "+available[0]+available[1]+"/"+total[0]+total[1]);    
  43.         }else {    
  44.             sDTextView.setText("SD CARD 已刪除");    
  45.         }    
  46.     }  
  47.     /*返回為字串陣列[0]為大小[1]為單位KB或者MB*/    
  48.     private String[] fileSize(long size){  
  49.         float sizef = size;
  50.         int kmg = 1024;  
  51.         String str="";    
  52.         if(sizef>=kmg ){    
  53.             str="KB";    
  54.             sizef/=kmg ;    
  55.             if(sizef>=kmg ){    
  56.                 str="MB";    
  57.                 sizef/=kmg 
  58.                 if(sizef>=kmg){
  59.                     str="G";
  60.                     sizef/=kmg;    
  61.                 }          
  62.             }    
  63.         }    
  64.         /*將每3個數字用,分隔如:1,000*/    
  65.         DecimalFormat formatter=new DecimalFormat();    
  66.         formatter.setGroupingSize(3);    
  67.         String result[]=new String[2];    
  68.         result[0]=formatter.format(size);    
  69.         result[1]=str;    
  70.         return result;    
  71.     }    
  72.     @Override  
  73.     public boolean onCreateOptionsMenu(Menu menu) {  
  74.         // Inflate the menu; this adds items to the action bar if it is present.  
  75.         getMenuInflater().inflate(R.menu.main, menu);  
  76.         return true;  
  77.     }

相關文章