72 获得系统正在运行的进程信息 73 private void getRunningServiceInfo 74 75 设置一个默认Service的数量大小 76 int defaultNum = 20; 77 通过调用ActivityManager的getRunningAppServicees方法获得系统里所有正在运行
private void getRunningServiceInfo() {
int defaultNum = 20;
List<ActivityManager.RunningServiceInfo> runServiceList = mActivityManager.getRunningServices(defaultNum);
System.out.println(runServiceList.size());
serviceInfoList = new ArrayList<RunSericeModel>();
for (ActivityManager.RunningServiceInfo runServiceInfo : runServiceList) {
int pid = runServiceInfo.pid;
int uid = runServiceInfo.uid;
String processName = runServiceInfo.process;
long activeSince = runServiceInfo.activeSince;
int clientCount = runServiceInfo.clientCount;
ComponentName serviceCMP = runServiceInfo.service;
String serviceName = serviceCMP.getShortClassName();
String pkgName = serviceCMP.getPackageName();
Log.i(TAG, "所在进程id :" + pid + " 所在进程名:" + processName + " 所在进程uid:"
+ uid + "\n" + " service启动的时间值:" + activeSince
+ " 客户端绑定数目:" + clientCount + "\n" + "该service的组件信息:"
+ serviceName + " and " + pkgName);
PackageManager mPackageManager = this.getPackageManager();
try {
ApplicationInfo appInfo = mPackageManager.getApplicationInfo(pkgName, 0);
RunSericeModel runService = new RunSericeModel();
runService.setAppIcon(appInfo.loadIcon(mPackageManager));
runService.setAppLabel(appInfo.loadLabel(mPackageManager) + "");
runService.setServiceName(serviceName);
runService.setPkgName(pkgName);
Intent intent = new Intent();
intent.setComponent(serviceCMP);
runService.setIntent(intent);
runService.setPid(pid);
runService.setProcessName(processName);
serviceInfoList.add(runService);
} catch (NameNotFoundException e) {
System.out.println("--------------------- error -------------");
e.printStackTrace();
}
}
原文地址: https://www.cveoy.top/t/topic/ilux 著作权归作者所有。请勿转载和采集!