我想列出所有后台运行的进程,并从一个后台服务(没有UI)获取这些进程的详细信息。详情如下:
1. Name
2. Memory usage
3. Application related to process
4. Files they are accessing
5. Last modified time of files
我可以获得后台运行进程的列表,但是如何获取内存使用情况,他们正在访问的文件以及文件的上次修改时间。 这可以在API级别实施吗?任何人都可以指导我如何做到这一点?任何人都可以给我一些想法或建议与此相关的有用链接。
答案 0 :(得分:9)
正在运行的服务用户界面使用getRunningAppProcesses,getProcessMemoryInfo和getRunningServices。
请注意,这些只告诉您由高级系统管理的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