android+系统进程管理,Android进程管理器.doc
/android/archive/2011/11/4/android-task-manager.html如何在Android中实现任务管理器今天,我们来实现一个Android任务管理器,来简单管理Android系统中运行的程序进程,包括查看进程、杀死进程以及内存资源的查看,下面就一起看看这个任务管理器是如何实现的吧。任务管理器可以实现的功能有:1.查看当前系统下运行的所有的进程2.可以查看每个进程
/android/archive/2011/11/4/android-task-manager.html
如何在Android中实现任务管理器
今天,我们来实现一个Android任务管理器,来简单管理Android系统中运行的程序进程,包括查看进程、杀死进程以及内存资源的查看,下面就一起看看这个任务管理器是如何实现的吧。
任务管理器可以实现的功能有:
1.查看当前系统下运行的所有的进程
2.可以查看每个进程的进程号、版本号以及内存占用情况
3.杀死进程(可以杀死全部进程或者杀死指定的进程)
4.查看系统剩余内存
效果图:????????????????????????????????????????????????????????????????????????? 杀死全部进程
??????
实现思路:
ActivityManager类可以获取到当前系统的所有进程,以及每个进程的信息,也可以杀死某个进程,
ActivityManager.getRunningAppProcesses(); ? 获取系统的所有进程
ActivityManager.getProcessMemoryInfo(pids); ?根据进程号获取每个进程的内存占用情况
ActivityManager.restartPackage(processName) ; ?根据进程的包名杀死某个进程
PackageManager可以根据包名获取程序的图标、版本号、名字、权限、签名
核心代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16/*
?* 获取所有进程及用户 的进程
?*/
protected void initData() {
????runningAppProcessInfos =ActivityManager.getRunningAppProcesses(); //获取所有的进程
????userRunningAppProcessInfos = new ArrayList();//获取用户的进程
????for(int i = 0; i< runningAppProcessInfos.size();i++){
?????????if("system".equals(runningAppProcessInfos.get(i).processName)
????????||"cess.media".equals(runningAppProcessInfos.get(i).processName)
????????||"cess.acore".equals(runningAppProcessInfos.get(i).processName)
????????){
?????????????continue;
?????????}
?????????userRunningAppProcessInfos.add(runningAppProcessInfos.get(i));
????}
}注:杀死全部进程实际上杀死的是用户的所有进程,系统进程是无法杀死的,所以这里要获取到用户的所有的进程。
1
2
3
4
5
6
7
8/*
?* 获取某个进程占用的内存信息
?*/
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
int[] pids = {userRunningAppProcessInfos.get(position).pid};
android.os.Debug.MemoryInfo[] memoryInfos =? am.getProcessMemoryInfo(pids);
int memorysize = memoryInfos[0].getTotalPrivateDirty();
tv_app_memory.setText("内存占用为 "+ memorysize +" KB");1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80public class TaskInfo {
????Context contex
更多推荐
所有评论(0)