Android - это Linux для большинства подобных вещей, и официальный способ сделать это в Linux - это прочитать файловую систему /proc
. Это то, что делает программа командной строки ps
. Вот фрагмент из ps-программы Android , которая находится в репозитории платформы / системы / ядра:
d = opendir("/proc");
while((de = readdir(d)) != 0){
if(isdigit(de->d_name[0])){
int pid = atoi(de->d_name);
if(!pidfilter || (pidfilter == pid)) {
ps_line(pid, 0, namefilter);
if(threads) ps_threads(pid, namefilter);
}
}
}
Функция ps_line
довольно большая, но вам нужна та часть, где она читает /proc/<pid>/stat
. Из этого файла вы можете достаточно легко получить имя процесса, так как он имеет формат PID (process-name) other stuff
- просто ищите первое имя и анализируйте до последнего.