Как узнать подробности процесса запуска Android - PullRequest
7 голосов
/ 22 ноября 2011

Я хочу перечислить все фоновые запущенные процессы и получить информацию о них из одного фонового сервиса (без пользовательского интерфейса). Подробности следующие:

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

Я могу получить список фоновых запущенных процессов, но как использовать память, файлы, к которым они обращаются, и время последнего изменения файлов. Возможно ли это реализовать на уровне API? Может кто-нибудь подсказать мне, как это сделать? Кто-нибудь может дать мне идею или предложить полезную ссылку, связанную с этим.

Ответы [ 2 ]

9 голосов
/ 04 декабря 2011

Пользовательский интерфейс Running Services использует getRunningAppProcesses , getProcessMemoryInfo и getRunningServices .

Обратите внимание, что они говорят только о процессах Java, управляемых системой высокого уровня; getRunningAppProcesses не будет возвращать информацию о низкоуровневых процессах демона.

Ядро содержит информацию об открытых файлах в / proc, но вы не можете получить информацию о другом процессе, если вы не работаете от имени пользователя root.

Также все запущенные в настоящее время процессы находятся в / proc, но, пожалуйста, обратите внимание, что / proc не является частью Android SDK, и нет никаких гарантий того, что ваше приложение будет работать на всех устройствах или версиях платформы при его использовании. / proc является частной реализацией.

4 голосов
/ 22 ноября 2011

С помощью следующей строки кода вы можете получить список запущенных сервисов

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

List RunningServiceInfoservices = localActivityManager.getRunningServices(100);

, а из RunningServiceInfo вы можете получить подробную информацию о процессе.http://developer.android.com/reference/android/app/ActivityManager.RunningServiceInfo.html

...