⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 activityservicedemo.java

📁 Android系统服务开发
💻 JAVA
字号:
package foolstudio.demo.sys;

import java.util.List;

import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.app.ActivityManager.ProcessErrorStateInfo;
import android.app.ActivityManager.RecentTaskInfo;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.app.ActivityManager.RunningServiceInfo;
import android.app.ActivityManager.RunningTaskInfo;
import android.content.pm.ConfigurationInfo;
import android.content.res.Configuration;

public class ActivityServiceDemo {

	public static String getInfo(ActivityManager service) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		ConfigurationInfo cfgInfo = service.getDeviceConfigurationInfo();
		sb.append(getInfo(cfgInfo) );
		sb.append('\n');
		//
		MemoryInfo memInfo = new MemoryInfo();
		service.getMemoryInfo(memInfo);
		sb.append(getInfo(memInfo) );
		sb.append('\n');
		//
		List<ProcessErrorStateInfo> states = service.getProcessesInErrorState();
		if(states != null) {
			sb.append(getStates(states) );
		}
		//
		List<ActivityManager.RecentTaskInfo> recentTasks = 
			service.getRecentTasks(Integer.MAX_VALUE, 
								   ActivityManager.RECENT_WITH_EXCLUDED);
		if(recentTasks != null) {
			sb.append(getRecentTasks(recentTasks) );
		}		
		//
		List<ActivityManager.RunningAppProcessInfo> processes = 
			service.getRunningAppProcesses();
		if(recentTasks != null) {
			sb.append(getProcesses(processes) );
		}		
		//
		List<ActivityManager.RunningServiceInfo> services = 
			service.getRunningServices(Integer.MAX_VALUE);
		if(services != null) {
			sb.append(getServices(services) );
		}
		//
		List<ActivityManager.RunningTaskInfo> runningTasks = 
			service.getRunningTasks(Integer.MAX_VALUE);
		if(runningTasks != null) {
			sb.append(getRunningTasks(runningTasks) );
		}
		
		return (sb.toString() );
	}

	//获取错误状态
	private static String getStates(List<ProcessErrorStateInfo> states) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		sb.append("====进程错误状态信息:\n");
		for(int i = 0; i < states.size(); ++i) {
			ProcessErrorStateInfo info = states.get(i);
			
			sb.append("PID=");
			sb.append(info.pid);
			sb.append("; LMSG=");			
			sb.append(info.longMsg);
			sb.append("; SMSG=");			
			sb.append(info.shortMsg);	
			sb.append("; TAG=");			
			sb.append(info.tag);			
			sb.append('\n');			
		}
		
		return (sb.toString() );
	}

	//获取运行中任务
	private static String getRunningTasks(List<RunningTaskInfo> runningTasks) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		sb.append("====在运行任务信息:\n");
		for(int i = 0; i < runningTasks.size(); ++i) {
			RunningTaskInfo info = runningTasks.get(i);
			
			sb.append("TID=");
			sb.append(info.id);		
			sb.append("; Act=");
			sb.append(info.baseActivity.getShortClassName() );
			sb.append('\n');
		}		
		
		return (sb.toString() );		
	}

	//获取运行中服务信息
	private static String getServices(List<RunningServiceInfo> services) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		sb.append("====在运行服务信息:\n");
		for(int i = 0; i < services.size(); ++i) {
			RunningServiceInfo info = services.get(i);
			
			sb.append("Service=");
			sb.append(info.service.getShortClassName() );				
			sb.append("; PID=");
			sb.append(info.pid);	
			sb.append("; Proc=");
			sb.append(info.process);			
			sb.append('\n');
		}
		
		return (sb.toString() );		
	}

	//获取进程信息
	private static String getProcesses(List<RunningAppProcessInfo> processes) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		sb.append("====正运行进程信息:\n");
		for(int i = 0; i < processes.size(); ++i) {
			RunningAppProcessInfo info = processes.get(i);
			
			sb.append("PID=");
			sb.append(info.pid);		
			sb.append("; Name=");
			sb.append(info.processName);
			sb.append("; Level=");
			
			switch(info.importance) {
				case ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND: {
					sb.append("前台");
					break;
				}
				case ActivityManager.RunningAppProcessInfo.IMPORTANCE_VISIBLE: {
					sb.append("可见");
					break;
				}
				case ActivityManager.RunningAppProcessInfo.IMPORTANCE_SERVICE: {
					sb.append("服务");
					break;
				}
				case ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND: {
					sb.append("后台");
					break;
				}
				case ActivityManager.RunningAppProcessInfo.IMPORTANCE_EMPTY: {
					sb.append("空置");
					break;
				}
			}
			
			sb.append('\n');
		}		
		
		return (sb.toString() );		
	}
	
	//获取新近任务信息
	private static String getRecentTasks(List<RecentTaskInfo> recentTasks) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		sb.append("====新近任务信息:\n");
		for(int i = 0; i < recentTasks.size(); ++i) {
			RecentTaskInfo info = recentTasks.get(i);
			
			sb.append("TID=");
			sb.append(info.id);		
			sb.append("; Act=");
			sb.append(info.baseIntent.getAction() );
			sb.append('\n');
		}
		
		return (sb.toString() );		
	}	

	//获取内存信息
	private static String getInfo(MemoryInfo memInfo) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		sb.append("====内存信息:\n");
		sb.append("总内存:");		
		sb.append(memInfo.availMem);
		sb.append('\n');
		sb.append("是否低内存:");
		sb.append(memInfo.lowMemory);
		sb.append('\n');
		sb.append("内存阀值:");
		sb.append(memInfo.threshold);
		
		return (sb.toString() );
	}

	//获取配置信息
	private static String getInfo(ConfigurationInfo cfgInfo) {
		// TODO Auto-generated method stub
		StringBuffer sb = new StringBuffer();
		
		sb.append("====配置信息:\n");
		sb.append("输入方式:");
		switch(cfgInfo.reqInputFeatures) {
			case ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV: {
				sb.append("五向导航键输入");
				break;
			}
			case ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD: {
				sb.append("硬键盘输入");
				break;
			}
			case (ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV |
				ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD): {
				sb.append("复合键盘输入");
				break;
			}
		}
		sb.append('\n');
		
		sb.append("键盘类型:");
		switch(cfgInfo.reqKeyboardType) {
			case Configuration.KEYBOARD_UNDEFINED: {
				sb.append("未定义键盘");
				break; 
			}
			case Configuration.KEYBOARD_NOKEYS: {
				sb.append("无键键盘");
				break; 
			}
			case Configuration.KEYBOARD_QWERTY: {
				sb.append("打字机键盘");
				break; 
			}
			case Configuration.KEYBOARD_12KEY: {
				sb.append("十二键盘");
				break; 
			}
		}
		sb.append('\n');
		
		sb.append("导航方式:");		
		switch(cfgInfo.reqNavigation) {
			case Configuration.NAVIGATION_UNDEFINED: {
				sb.append("未定义导航");
				break; 
			}
			case Configuration.NAVIGATION_DPAD: {
				sb.append("面板导航");
				break; 
			}
			case Configuration.NAVIGATION_TRACKBALL: {
				sb.append("定位球导航");
				break; 
			}
			case Configuration.NAVIGATION_WHEEL: {
				sb.append("滚轮导航");
				break; 
			}
		}		
		sb.append('\n');
		
		sb.append("触摸屏方式:");		
		switch(cfgInfo.reqTouchScreen) {
			case Configuration.TOUCHSCREEN_NOTOUCH: {
				sb.append("不支持触摸屏");
				break; 
			}
			case Configuration.TOUCHSCREEN_STYLUS: {
				sb.append("触摸笔");
				break; 
			}
			case Configuration.TOUCHSCREEN_FINGER: {
				sb.append("手指触摸");
				break; 
			}
		}
		
		return (sb.toString() );
	}
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -