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
- /**
- *显示RAM的可用和总容量
- */
- private void showRAMInfo(){
- ActivityManager am=(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
- MemoryInfo mi=new MemoryInfo();
- am.getMemoryInfo(mi);
- String[] available=fileSize(mi.availMem);
- String[] total=fileSize(mi.totalMem);
- rAMTextView.setText("RAM "+available[0]+available[1]+"/"+total[0]+total[1]);
- }
- /**
- *显示ROM的可用和总容量 获取手机内部存储空间
- */
- private void showROMInfo(){
- File file=Environment.getDataDirectory();
- StatFs statFs=new StatFs(file.getPath());
- long blockSize=statFs.getBlockSize();
- long totalBlocks=statFs.getBlockCount();
- long availableBlocks=statFs.getAvailableBlocks();
- String[] total=fileSize(totalBlocks*blockSize);
- String[] available=fileSize(availableBlocks*blockSize);
- rOMTextView.setText("ROM "+available[0]+available[1]+"/"+total[0]+total[1]);
- }
- /**
- *显示SD卡的可用和总容量,获取手机外部存储空间
- */
- private void showSDInfo(){
- if(Environment.getExternalStorageState().equals
- (Environment.MEDIA_MOUNTED)){//sd卡是否可用
- File file=Environment.getExternalStorageDirectory();
- StatFs statFs=new StatFs(file.getPath());
- long blockSize=statFs.getBlockSize();
- long totalBlocks=statFs.getBlockCount();
- long availableBlocks=statFs.getAvailableBlocks();
- String[] total=fileSize(totalBlocks*blockSize);
- String[] available=fileSize(availableBlocks*blockSize);
- sDTextView.setText("SD "+available[0]+available[1]+"/"+total[0]+total[1]);
- }else {
- sDTextView.setText("SD CARD 已删除");
- }
- }
- /*返回为字符串数组[0]为大小[1]为单位KB或者MB*/
- private String[] fileSize(long size){
- float sizef = size;
- int kmg = 1024;
- String str="";
- if(sizef>=kmg ){
- str="KB";
- sizef/=kmg ;
- if(sizef>=kmg ){
- str="MB";
- sizef/=kmg ;
- if(sizef>=kmg){
- str="G";
- sizef/=kmg;
- }
- }
- }
- /*将每3个数字用,分隔如:1,000*/
- DecimalFormat formatter=new DecimalFormat();
- formatter.setGroupingSize(3);
- String result[]=new String[2];
- result[0]=formatter.format(size);
- result[1]=str;
- return result;
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }