您的位置:首页 > 其它

如何获得手机总内存和可用内存

2012-04-26 18:35 344 查看
package com.per.test;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.util.ArrayList;

import android.app.Activity;

import android.app.ActivityManager;

import android.app.ActivityManager.MemoryInfo;

import android.content.Context;

import android.os.Bundle;

import android.util.Log;

import android.widget.TextView;

public class TestzzzActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Integer a = Integer.MAX_VALUE;

Log.d("test", "ss:" + a);

String s = getAvailMemory();

String s2 = getTotalMemory();

int total = getNumber(s2);

TextView tv = (TextView) findViewById(R.id.sel);

tv.setText("可用内存:" + s + ";总内存:" + total / 1024 + "MB");

}

/*

* 获得可用内存

*/

public String getAvailMemory() {

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

MemoryInfo mi = new MemoryInfo();

am.getMemoryInfo(mi);

Log.d("test", "可用内存:" + mi.availMem);

return android.text.format.Formatter.formatFileSize(this, mi.availMem);

}

/*

* 获得系统文件的内容第一行为总内存

*/

public String getTotalMemory() {

String str1 = "/proc/meminfo";// 系统内存信息文件

String str2 = null;

String str3;

ArrayList<String> arr = new ArrayList<String>();

try {

FileReader reader = new FileReader(str1);

BufferedReader buf = new BufferedReader(reader, 1024);

while (buf.read() != -1) {

str2 = buf.readLine();

arr.add(str2);

}

for (int i = 0; i < arr.size(); i++) {

Log.d("test", "line" + i + ":" + arr.get(i));

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return arr.get(0);

}

public int getNumber(String str) {

int m = 0;

String s ="";

for (int i = 0; i < str.length(); i++) {

switch (str.charAt(i)) {

case '1':

s+='1';

break;

case '2':

s+='2';

break;

case '3':

s+='3';

break;

case '4':

s+='4';

break;

case '5':

s+='5';

break;

case '6':

s+='6';

break;

case '7':

s+='7';

break;

case '8':

s+='8';

break;

case '9':

s+='9';

break;

case '0':

s+='0';

break;

default:

break;

}

}

if(!"".equals(s)&&null!=s){

m = Integer.valueOf(s);

}

return m;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: