android项目得到进程数量,运行内存和剩余运行内存

package com.itheima.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.content.Context;
import android.text.format.Formatter;

public class RunRomUtils {
    //得到运行的程序
    public static int getCountRom(Context context){
        ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
        return am.getRunningAppProcesses().size();

    }
    //得到剩余运行内存空间
    public static String getAvail(Context context){
        ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
        MemoryInfo outInfo = new MemoryInfo();
        am.getMemoryInfo(outInfo );

        return Formatter.formatFileSize(context, outInfo.availMem);
    }
    //得到总运行内存空间
    public static String getTotal(Context context){
        //4.1.2及以上可以用这个办法
//        ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE);
//        MemoryInfo outInfo = new MemoryInfo();
//        am.getMemoryInfo(outInfo );
//        return Formatter.formatFileSize(context, outInfo.totalMem);
        File file = new File("/proc/meminfo");
        FileInputStream fileIn;
        try {
            fileIn = new FileInputStream(file);
            InputStreamReader in = new InputStreamReader(fileIn);
            BufferedReader br = new BufferedReader(in);
            String result = br.readLine();
            String total = "";
            StringBuffer sb = new StringBuffer();
            for (char c : result.toCharArray()) {
                if(c>=‘0‘&&c<=‘9‘){
                    sb.append(c);
                }
            }
            int c = Integer.valueOf(sb.toString())*1024;
            return Formatter.formatFileSize(context,c);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return "";
        }
    }
}
时间: 2024-10-14 07:03:30

android项目得到进程数量,运行内存和剩余运行内存的相关文章

Android 项目优化(五):应用启动优化

介绍了前面的优化的方案后,这里我们在针对应用的启动优化做一下讲解和说明. 一.App启动概述 一个应用App的启动速度能够影响用户的首次体验,启动速度较慢(感官上)的应用可能导致用户再次开启App的意图下降,或者卸载放弃该应用程序. 应用程序启动有主要分为两种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动. 冷启动:冷启动表示用户首次打开应用,这时进程还没创建,包含了Application创建的过程.冷启动时间指从第一次用户点击Launcher中的应用图标开始,到首页内容全部

Android项目开发全程(二)--Afinal用法简单介绍

本篇博文接上篇的<Android项目开发全程(一)--创建工程>,主要介绍一下在本项目中用到的一个很重要的框架-Afinal,由于本系列博文重点是项目开发全程,所以在这里就先介绍一下本项目中用到的几个功能: Afinal简介 Afinal 是一个android的sqlite orm 和 ioc 框架.同时封装了android中的http框架,使其更加简单易用: 使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题. Af

在eclipse中将android项目生成apk并且给apk签名

生成apk最懒惰的方法是:只要你运行过android项目,到工作目录的bin文件夹下就能找到与项目同名的apk文件,这种apk默认是已经使用debug用户签名的. 如果想要自己给apk签名: 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装).2.签名的步骤 a.创建key b.使用步骤a中产生的k

某技术大牛的帖子(android项目总结)

1. 一般性控件需要设置onclick事件才会有点击效果(selector). 2.  <item android:drawable="@drawable/btn_ct_green" />要写在selector的最后才会有点击效果. 3. 制作.9格式图片选最小图,否则默认大小撑大控件. 4. 如果将一个对象的属性设置为static,那么就算对象实例被回收了,该属性也存在内存,生命周期为app的生命周期. 5. OOM:普通视图和listvew等大数据量展示视图的图片控制分

使用Jenkins进行android项目的自动构建(3)

建立Jenkins项目 1. "新增作业"->填写作业名称->选择"建置 Maven 2 或 3 專案"->OK.新增成功后会进入"組態設定",暂时先保留默认值,稍后再进行设定. 2. 按一下"马上建置",会显示"已排入建置",然后在"建置歷程"会见到#1的链接,点入该链接并选择"終端機輸出",这时会见到一个失败的构建记录.当然会失败,因为我们还未为

Android 项目重构之路:实现篇

前两篇文章<Android项目重构之路:架构篇>和<Android项目重构之路:界面篇>已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的,以实现最小化可用产品(MVP)的目标,用最简单的方式来搭建架构和实现代码. IDE采用Android Studio,Demo实现的功能为用户注册.登录和展示一个券列表,数据采用我们现有项目的测试数据,接口也是我们项目中的测试接口. 项目搭建 根据架构篇所讲的,将项目分为了四个层级:模型层.接口层.核心层.界面层.四个层级之

Android之——获取进程总数、内存、任务列表

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47263863 如今,基于Android平台的应用越来越多,不乏这样一些应用程序,这些应用可以多手机中的进程,内存和任务列表进行管理.Android系统中没有自带的应用程序对这些数据进行管理.大家不禁会说,Android的应用设置里面有这些功能啊!是的,虽然应用设置里面有,但是我们如果想看一下系统的进程,还要跑到系统设置里面去看吗?这样是不是很麻烦?是不是很挫呢?那获取Androi

Android中通过进程注入技术修改系统返回的Mac地址

致谢 感谢看雪论坛中的这位大神,分享了这个技术:http://bbs.pediy.com/showthread.php?t=186054,从这篇文章中学习到了很多内容,如果没有这篇好文章,我在研究的过程中会遇到很多困难,说不定我就放弃了~~在此感谢他. 前言 之前的几篇文章都是在介绍了OC的相关知识,之前的半个月也都是在搞IOS的相关东西,白天上班做Android工作,晚上回家还有弄IOS,感觉真的很伤了.不过OC的知识也学习了差不多了.不过在这段时间遗留了很多Android方面的问题都没有进行

Android中的进程和线程,-&gt;View.post(Runnable) -&gt;AsyncTask

写在前面的话 一个Android应用就是一个Linux进程,每个应用在各自的进程中运行,互不干扰,比较安全. 一个应用对应一个主线程,就是通常所说的UI线程,android遵守的就是单线程模型,所以说Ui操作不是线程安全的并且这些操作必须在UI线程中执行. 本文是对官方文档的翻译,原文链接:https://developer.android.com/guide/components/processes-and-threads.html 概述 当某个应用组件启动且该应用没有运行其他任何组件时,An