安卓应用开发实战:[12]读取内存使用情况
1、通过查看安卓系统的设置程序功能,可以设想我们可以通过分析安卓系统的设置程序的源代码,得到获取存储设备信息部分的主要代码。
![安卓应用开发实战:[12]读取内存使用情况](https://exp-picture.cdn.bcebos.com/bd72f23834bb19efac3040a0497bd28287893ac7.jpg)
3、主要代码则下面所示:pu水瑞侮瑜blic class MainActivity extends Activit烤恤鹇灭y {TextView tvSdTotalSize = null;TextView tvSdAvailSeze = null;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //渲染界面 setContentView(R.layout.activity_main); //寻找控件 tvSdTotalSize = (TextView) this.findViewById(R.id.tvSdTotalSize); tvSdAvailSeze = (TextView) this.findViewById(R.id.tvSdAvailSize); //获得SD卡容量和剩余量 final StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath()); final long blockSize = stat.getBlockSize(); final long totalBlocks = stat.getBlockCount(); final long availableBlocks = stat.getAvailableBlocks(); long mTotalSize = totalBlocks * blockSize; long mAvailSize = availableBlocks * blockSize; String mAvailSize2String = Formatter.formatFileSize(getApplicationContext(), mAvailSize); String mTotalSize2String = Formatter.formatFileSize(getApplicationContext(), mTotalSize); //显示 tvSdTotalSize.setText(mTotalSize2String); tvSdAvailSeze.setText(mAvailSize2String);}}
![安卓应用开发实战:[12]读取内存使用情况](https://exp-picture.cdn.bcebos.com/35f2224133bad3411f12ad83427622bc7cc52cc7.jpg)
5、blockSize:块大小,totalBlocks:总共要多少块,availableBlocks:剩余多少块。以存储块来获得内存信息,stat.getBlockSize()方法获得块大小,stat.getBlockCount()和stat.getAvailableBlocks()的返回值则是以块为单位的,所以要乘以块大小才得到以字节为单位的内存大小。
![安卓应用开发实战:[12]读取内存使用情况](https://exp-picture.cdn.bcebos.com/d4071b96b814f4d0926c8466cdfe474ec38323c7.jpg)