Android计算进程数及剩余内存

来源:互联网 发布:golang mgo 编辑:程序博客网 时间:2024/06/06 13:07

1、在Activity中

public class TaskManagerActivity extends Activity {    private TextView tv_task_count, tv_avail_memory;    private ActivityManager am;    private List<RunningAppProcessInfo> runningappinfos;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);        tv_task_count = (TextView) findViewById(R.id.tv_task_count);        tv_avail_memory = (TextView) findViewById(R.id.tv_avail_memory);        setTitleData();    }//设置title的数据    private void setTitleData() {        tv_task_count.setText("进程数目:" + getProgressCount());        tv_avail_memory.setText("剩余内存:" +getAvailMemoryInfo());    }    // 获取正在运行的所有进程的个数    private int getProgressCount() {        runningappinfos = am.getRunningAppProcesses();        return runningappinfos.size();    }//获取当前系统的剩余的可用内存信息    private String getAvailMemoryInfo() {        MemoryInfo outInfo = new ActivityManager.MemoryInfo();        am.getMemoryInfo(outInfo);        long size=outInfo.availMem;        return TextFormater.getDataSize(size);    }}

2、Util下TextFormater 方法

public class TextFormater {//  返回byte的数据大小对应的文本public static String getDataSize(long size){    DecimalFormat formater=new DecimalFormat("####.00");    if (size<1024) {        return size+"bytes";    }else if (size<1024*1024) {        float kbsize=size/1024f;//      0和#表示数字,但是#前面没有就用0表示        return formater.format(kbsize)+"KB";    }else if (size<1024*1024*1024) {        float mbsize=size/1024f/1024f;//      0和#表示数字,但是#前面没有就用0表示        return formater.format(mbsize)+"MB";    }else if(size<1024*1024*1024*1024) {        float gbsize=size/1024f/1024f/1024f;//      0和#表示数字,但是#前面没有就用0表示        return formater.format(gbsize)+"GB";    }else {        return "size:error";    }    }}
0 0
原创粉丝点击