获取安卓内存状态
2016-04-06 14:07
225 查看
package com.itheiima28.memorydemo; import java.io.File; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.os.StatFs; import android.text.format.Formatter; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; 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.tv_memory_info); //获得sd卡的内存状态 File sdcardFileDir = Environment.getExternalStorageDirectory(); System.out.println(sdcardFileDir.toString()); String sdcardMemory = getMemoryInfo(sdcardFileDir); //获得手机内部存储控件的状态 File dataFileDir = Environment.getDataDirectory();// /data String dataMemory = getMemoryInfo(dataFileDir); //System.out.println(dataFileDir.toString()); tvMemoryInfo.setText("SD卡:"+sdcardMemory + "\n手机内部内存:"+dataMemory); } /** * 根据路径获取内存的状态 * */ public String getMemoryInfo(File path){ //获得一个磁盘状态对象 //File path = Environment.getExternalStorageDirectory(); 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; } }
<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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.itheiima28.memorydemo.MainActivity" > <TextView android:id="@+id/tv_memory_info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" /> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheiima28.memorydemo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
关于找内存空间源码: 在安卓Total space
查找结果:
进入之后再次查找
再次搜索:memory_sd_size
Memory.java中的有关代码:
<span style="white-space:pre"> </span> File path = Environment.getExternalStorageDirectory(); StatFs stat = new StatFs(path.getPath()); long blockSize = stat.getBlockSize(); long totalBlocks = stat.getBlockCount(); long availableBlocks = stat.getAvailableBlocks(); mSdSize.setSummary(formatSize(totalBlocks * blockSize)); mSdAvail.setSummary(formatSize(availableBlocks * blockSize) + readOnly); mSdMountToggle.setEnabled(true); mSdMountToggle.setTitle(mRes.getString(R.string.sd_eject)); mSdMountToggle.setSummary(mRes.getString(R.string.sd_eject_summary));
相关文章推荐
- IIS6.0中ISAPI伪静态设置图文教程
- Asp.net下载文件几种方式
- ubuntu 14.04 将窗体button移到右边
- Mac下更改python版本为3.5
- 让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]
- Android通过Movie展示Gif格式图片
- 极速手游加速SDK快速指入指南+极速手游加速器SDK参考文档
- git 合并最后两次的commit
- cocos2D-X源码分析之从cocos2D-X学习OpenGL(2)----QUAD_COMMAND
- SharedPreferences.OnSharedPreferenceChangeListener什么时候调用
- dubbo服务无法注册问题 Failed to subscribe consumer:// 解决方法
- Nginx+Apache配置详解
- Android--通话录音
- iOS开发 cocopods使用详解
- PHP获取今天开始和结束的时间戳
- 基于谷歌官方DrawerLayout实现QQ样式边侧滑抽屉缩进缩出技术
- 加速Android Studio/Gradle构建的方法
- eclipse 里jetty 按Enter键不能重启
- leetcode——9——Palindrome Number
- Java-单机版的书店管理系统(练习设计模块和思想_系列 一 )