android获取进程内存,android 之获取系统进程信息、内存信息、杀死进程

/**

* Created by wofu on 2018/4/26.

* 进程管理--系统信息

*/

public class SystemjinchengManagerfoUtils extends Object {

/*

* 正在运行的进程数量

* */

public static int getRunningProgressCount(Context context){

//包程序管理器,程序管理器PackageManager 静态的

//进程管理器ActivityManger 动态的

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

List infos =am.getRunningAppProcesses();

return infos.size();

}

/*

* 剩余内存信息

*

* */

public static long getAvailableMemory(Context context){

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

ActivityManager.MemoryInfo meminfo=new ActivityManager.MemoryInfo();

am.getMemoryInfo(meminfo);

return meminfo.availMem;

}

/*

* 总内存信息

*

* */

public static long totalMemory(Context context){

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

ActivityManager.MemoryInfo meminfo=new ActivityManager.MemoryInfo();

am.getMemoryInfo(meminfo);

return meminfo.totalMem;

}

}

/**

* Created by wofu on 2018/4/27.

* 具体进程信息,内存信息

*/

public class TaskInfoJinchengMananger extends Object {

/*

*

* */

public static List getTaskInfos(Context context) {

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

PackageManager pm = context.getPackageManager();

List progressInfos = new ArrayList();

List taskinfos=new ArrayList<>();

for (ActivityManager.RunningAppProcessInfo progressInfo : progressInfos) {

TaskinfoManager taskInfo=new TaskinfoManager();

//应用程序的包名

String packname = progressInfo.processName;

Debug.MemoryInfo[] memoryinfos = am.getProcessMemoryInfo(new int[]{progressInfo.pid});//内存信息

long memsize = memoryinfos[0].getTotalPrivateDirty() * 1000;

taskInfo.setMemsize(memsize);

try {

// pm.getPackageInfo(packname,0).applicationInfo;//或者用下面的方法

ApplicationInfo applicationinfo = pm.getApplicationInfo(packname, 0);

Drawable icon = applicationinfo.loadIcon(pm);

taskInfo.setIcon(icon);

String name = applicationinfo.loadLabel(pm).toString();

if ((applicationinfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {

//用户进程

} else {

//系统进程

}

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}

taskinfos.add(taskInfo);

}

return taskinfos;

}

}

/**

* Created by wofu on 2018/4/27.

* 进程信息的业务bean

*/

public class TaskinfoManager extends Object {

private Drawable icon;

private String name;

private String packname;

private long memsize;

private boolean userTask;//是不是用户进程

public Drawable getIcon() {

return icon;

}

public String getName() {

return name;

}

public String getPackname() {

return packname;

}

public long getMemsize() {

return memsize;

}

public boolean isUserTask() {

return userTask;

}

public void setIcon(Drawable icon) {

this.icon = icon;

}

public void setName(String name) {

this.name = name;

}

public void setPackname(String packname) {

this.packname = packname;

}

public void setMemsize(long memsize) {

this.memsize = memsize;

}

public void setUserTask(boolean userTask) {

this.userTask = userTask;

}

}

---杀死进程-----java

/*

* 一键清理

* */

@SuppressLint("MissingPermission")

public void killAll(View view){

ActivityManager am= (ActivityManager) getSystemService(ACTIVITY_SERVICE);

Listinfos =TaskInfoJinchengMananger.getTaskInfos(this);

for(TaskinfoManager info:infos){

//若是被勾选,就杀死进程---勾选的这个没有作,

am.killBackgroundProcesses(info.getPackname());

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值