获取内存状态

来源:互联网 发布:软件项目质量保证措施 编辑:程序博客网 时间:2024/06/02 01:52
public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView tvMemoryInfo = (TextView) findViewById(R.id.no_memory_state);        //获得sd卡的内存状态        File sdcardFileDir = Environment.getExternalStorageDirectory();        String sdcardMemory = getMemoryInfo(sdcardFileDir);        //获得手机内部存储空间的状态        File dataFileDir = Environment.getDataDirectory();        String dataMenmory = getMemoryInfo(dataFileDir);        tvMemoryInfo.setText("SD卡:"+sdcardMemory+"\n手机内部存储:"+dataMenmory);    }    private String getMemoryInfo(File path){        //获得一个磁盘状态对象        StatFs stat = new StatFs(path.getPath());        //获得一个扇区的大小        long blockSize = stat.getBlockSize();        //获得总扇区数        long totalBlocks = stat.getBlockCount();        //获得可用的扇区总数(剩余空间的扇区数)        long availableBlocks = stat.getAvailableBlocks();        //总空间        String totalMemory = Formatter.formatFileSize(this,totalBlocks*blockSize);        //可用空间        String availableMemory = Formatter.formatFileSize(this,availableBlocks*blockSize);        return "总空间:"+totalMemory+"\n"+"可用空间:"+availableMemory;    }}

acticity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity" >    <TextView        android:id="@+id/no_memory_state"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        /></RelativeLayout>

效果
这里写图片描述

0 0