2
NDKを使用して純粋なC/C++コードを使用してデバイス上で現在実行されているすべてのプロセスを取得する方法はありますか?NDKどのようにすべてのプロセスの実行リストを取得するには?
NDKを使用して純粋なC/C++コードを使用してデバイス上で現在実行されているすべてのプロセスを取得する方法はありますか?NDKどのようにすべてのプロセスの実行リストを取得するには?
Androidはこの種のもののほとんどでLinuxです.Linuxでこれを行う公式の方法は/proc
ファイルシステムを読むことです。これは、コマンドラインプログラムps
の機能です。ここでは、プラットフォーム/システム/コアリポジトリに住んでいるAndroid's ps programからのスニペットは、です:
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
であるので、プロセス名を簡単に取得できます。最初の括弧を探して、閉じたものまで解析します。