首先说下,这个源代码是从eoe上down来的,自己就是稍微改了下界面,其他基本上没动,很多代码命名不规范的地方,大家担待下,先看下程序运行效果吧,
当你点击相应图标,会出现相对应的列表,在下面会附上下载地址。
在这里只简单的把功能代码列举下,详细代码可以自己研究:
ActivityManager am=null;
PackageManager pm=null;
PackageInfo info=null;
ActivityManager.MemoryInfo memoryInfo=null;
//进程列表
List<RunningAppProcessInfo>processInfos=null;
//安装程序列表
List<ApplicationInfo>applicationInfos=null;
//任务列表
List<RunningTaskInfo>taskInfos=null;
List<RunningServiceInfo>serviceInfos=null;
ListAdapter adapter=null; am=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
pm=getApplicationContext().getPackageManager();
pm.getInstalledPackages(0);
processInfos=new ArrayList<RunningAppProcessInfo>();
applicationInfos=new ArrayList<ApplicationInfo>();
info=new PackageInfo();
memoryInfo=new ActivityManager.MemoryInfo();
listView=(ListView)findViewById(R.id.list);
memoryUtil=new ProcessMemoryUtil();
memoryUtil.initPMUtil();
获取正在运行的进程列表:
public void getRunningAppProcessInfo(){
processInfos=am.getRunningAppProcesses();
Log.i("getRunningAppProcessInfo", "共"+processInfos.size());
for(int i=0;i<processInfos.size();i++){
/*Log.i("getRunningAppProcessInfo", processInfos.get(i).processName+", "+
processInfos.get(i).pid);*/
}
}
public List<Map<String,String>> getRunningAppProcessInfo1(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
processInfos=am.getRunningAppProcesses();
Map<String, String>map=new HashMap<String, String>();
map.put("进程名", "共"+processInfos.size()+"条");
list.add(map);
for(int i=0;i<processInfos.size();i++){
map=new HashMap<String, String>();
map.put("进程名", processInfos.get(i).processName);
map.put("CPU", memoryUtil.getMemInfoByPid(processInfos.get(i).pid));
list.add(map);
}
return list;
}
获取安装程序列表:
public void getApplicationInfoList(){
applicationInfos=pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
//Log.i("getApplicationInfoList", "共"+applicationInfos.size());
for(int i=0;i<applicationInfos.size();i++){
/*Log.i("getApplicationInfoList",applicationInfos.get(i).packageName+"\t\t "+
applicationInfos.get(i).processName);*/
}
}
public List<Map<String,String>> getApplicationInfoList1(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
applicationInfos=pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
Map<String, String>map=new HashMap<String, String>();
map.put("进程名", "共"+applicationInfos.size()+"条");
list.add(map);
for(int i=0;i<applicationInfos.size();i++){
map=new HashMap<String, String>();
map.put("进程名", applicationInfos.get(i).processName);
list.add(map);
}
return list;
}
获取包信息:
public void getPackageInfo() throws NameNotFoundException{
//Log.i("getPackageInfo", "共"+processInfos.size());
for(int i=0;i<processInfos.size();i++){
info=pm.getPackageInfo(processInfos.get(i).processName, PackageManager.GET_ACTIVITIES);
//Log.i("getPackageInfo", info.packageName);
}
}
public List<Map<String, String>> getPackageInfo1(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
for(int i=0;i<processInfos.size();i++){
Map<String , String>map=new HashMap<String, String>();
try {
info=pm.getPackageInfo(processInfos.get(i).processName, PackageManager.GET_ACTIVITIES);
map.put("包名", info.packageName);
list.add(map);
} catch (NameNotFoundException e) {
e.printStackTrace();
/*map.put("包名", "空");
list.add(map);*/
}
}
return list;
}
获取任务名和图表:
public void getLoadIconAndLabel(){
Log.i("getLoadIconAndLabel", "共"+applicationInfos.size());
for(int i=0;i<applicationInfos.size();i++){
//Log.i("getLoadIconAndLabel", applicationInfos.get(i).loadIcon(pm).toString()+", "+applicationInfos.get(i).loadLabel(pm).toString());
}
}
public List<Map<String,String>> getLoadIconAndLabel1(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
Map<String, String>map=new HashMap<String, String>();
map.put("进程名", "共"+applicationInfos.size()+"条");
list.add(map);
for(int i=0;i<applicationInfos.size();i++){
map=new HashMap<String, String>();
map.put("图片", applicationInfos.get(i).loadIcon(pm).toString());
map.put("名字", applicationInfos.get(i).loadLabel(pm).toString());
list.add(map);
}
return list;
}
获取系统可用内存大小:
public void getMemoryInfo(){
am.getMemoryInfo(memoryInfo);
String memory=Formatter.formatFileSize(getBaseContext(), memoryInfo.availMem);
System.out.println("memory="+memory);
}
public List<Map<String, String>>getMemoryInfo1(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
Map<String , String>map=new HashMap<String, String>();
am.getMemoryInfo(memoryInfo);
String memory=Formatter.formatFileSize(getBaseContext(), memoryInfo.availMem);
map.put("可用内存", "可用内存:"+memory);
list.add(map);
return list;
}
获取用户安装的程序:
@SuppressWarnings("static-access")
public void getUserApplication(){
applicationInfos=pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
int count=0;
for(int i=0;i<applicationInfos.size();i++){
if((applicationInfos.get(i).flags & applicationInfos.get(i).FLAG_SYSTEM)<=0){
count++;
//Log.i("getUserApplication", applicationInfos.get(i).processName);
}
}
//Log.i("getUserApplication", "共"+count);
}
@SuppressWarnings("static-access")
public List<Map<String, String>> getUserApplication1(){
List<Map<String, String>> list=new ArrayList<Map<String,String>>();
applicationInfos=pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
Map<String, String>map=null;
for(int i=0;i<applicationInfos.size();i++){
if((applicationInfos.get(i).flags & applicationInfos.get(i).FLAG_SYSTEM)<=0){
map=new HashMap<String, String>();
map.put("安装程序", applicationInfos.get(i).packageName);
list.add(map);
}
}
if(map==null){
map=new HashMap<String, String>();
map.put("安装程序", "无");
list.add(map);
}
return list;
}
卸载程序:
public void unInstallApp(String getPackageName){
Uri uri = Uri.fromParts("package", getPackageName, null);
Intent it = new Intent(Intent.ACTION_DELETE, uri);
if(it!=null){
startActivity(it);
}else{
Toast.makeText(this, "Intent 为Null", 3000).show();
}
}
任务列表:
public List<Map<String, String>> getTasks(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
taskInfos=am.getRunningTasks(30);//30表示获取的最大数
for(int i=0;i<taskInfos.size();i++){
Map<String, String>map=new HashMap<String, String>();
map.put("任务", taskInfos.get(i).baseActivity.getClassName());
list.add(map);
}
return list;
}
服务列表:
public List<Map<String, String>> getRunningServiceInfo(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
StringBuffer serviceInfo=new StringBuffer();
serviceInfos=am.getRunningServices(100);
@SuppressWarnings("unused")
String isRunning="";
for(Iterator<RunningServiceInfo>it=serviceInfos.iterator();it.hasNext();){
RunningServiceInfo si=(RunningServiceInfo)it.next();
if(si.service.getClassName().toString().equals("com.android.controlAddFunctions.PhoneService")){
isRunning="正在运行";
}else{
isRunning="没有运行";
}
Map<String, String>map=new HashMap<String, String>();
map.put("服务类名", "服务类名:"+si.service.getClassName());
map.put("所属进程", "所属进程:"+si.process+"PID:("+si.pid+")");
list.add(map);
serviceInfo.append("pid:").append(si.pid);
serviceInfo.append("\nprocess:").append(si.process);
serviceInfo.append("\nservice:").append(si.service);
serviceInfo.append("\n\n");
}
Log.i("test", serviceInfo.toString());
return list;
}
退出该程序,返回到home界面:
private void returnToHome(){
Intent home=new Intent(Intent.ACTION_MAIN);
home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
}
获取当前电量:
public List<Map<String, String>>getCurrBattery(){
List<Map<String, String>>list=new ArrayList<Map<String,String>>();
Map<String, String>map=new HashMap<String, String>();
battery=txt_battery.getText().toString();
map.put("电量", battery);
list.add(map);
return list;
}
最后是下载地址:http://download.csdn.net/detail/aomandeshangxiao/3959256,如果有所帮助的话,帮忙顶一下吧!