如何获取android后台运行进程的详细信息

时间:2011-11-22 11:55:55

标签: android service background-process

我想列出所有后台运行的进程,并从一个后台服务(没有UI)获取这些进程的详细信息。详情如下:

1. Name
2. Memory usage
3. Application related to process
4. Files they are accessing
5. Last modified time of files

我可以获得后台运行进程的列表,但是如何获取内存使用情况,他们正在访问的文件以及文件的上次修改时间。 这可以在API级别实施吗?任何人都可以指导我如何做到这一点?任何人都可以给我一些想法或建议与此相关的有用链接。

2 个答案:

答案 0 :(得分:9)

正在运行的服务用户界面使用getRunningAppProcessesgetProcessMemoryInfogetRunningServices

请注意,这些只告诉您由高级系统管理的Java进程; getRunningAppProcesses不会返回有关低级守护程序进程的信息。

内核在/ proc下有关于打开文件的信息,但是除非你以root用户身份运行,否则你无法获得有关另一个进程的信息。

所有当前正在运行的进程都在/ proc下,但请注意/ proc不是Android SDK的一部分,并且无法保证如果使用该应用程序,您的应用程序将在所有设备或平台版本中运行。 / proc是一个私有实现细节。

答案 1 :(得分:4)

使用以下代码行,您可以获得当前正在运行的服务列表

ActivityManager localActivityManager = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);

List RunningServiceInfoservices = localActivityManager.getRunningServices(100);

从RunningServiceInfo中,您可以获得该过程的详细信息。 http://developer.android.com/reference/android/app/ActivityManager.RunningServiceInfo.html

相关问题